mysql:按mysql表列中元素的出现次数排序
有人能帮我根据同一个表的某列中字符串的出现次数来“排序”一个mysql表吗 我想根据位置发生的次数重新排列表 请参见下面的示例: 但它显示了以下结果忽略了位置的重复出现: id name location -- ----- -------- 4 Pranshu India 1 Mark US 3 Paul Australia 6 John Canada id名称位置 -- ----- -------- 4印度普兰舒 1马克我们 3保罗澳大利亚 6约翰加拿大mysql:按mysql表列中元素的出现次数排序,mysql,phpmyadmin,Mysql,Phpmyadmin,有人能帮我根据同一个表的某列中字符串的出现次数来“排序”一个mysql表吗 我想根据位置发生的次数重新排列表 请参见下面的示例: 但它显示了以下结果忽略了位置的重复出现: id name location -- ----- -------- 4 Pranshu India 1 Mark US 3 Paul Australia 6 John Canada id名称位置 -- -----
难得的是,一个人数的东西也是一个人分组的东西!@Mindstapper的答案正是你现在需要的 id name location -- ----- -------- 4 Pranshu India 5 Pranav India 7 Rishab India 1 Mark US 2 Mike US 3 Paul Australia 6 John Canada
SELECT *, COUNT(location) AS count FROM `tablename` GROUP BY `location` ORDER BY count DESC;
id name location
-- ----- --------
4 Pranshu India
1 Mark US
3 Paul Australia
6 John Canada
SELECT x.*
FROM my_table x
JOIN (SELECT location, COUNT(*) total FROM my_table GROUP BY location) y
ON y.location = x.location
ORDER
BY total DESC
, id;