mysql: ORDER BY 一个元素在 mysql 表的列中出现的次数

Pra*_*tha 2 mysql phpmyadmin

有人可以帮我根据编号“订购”一个 mysql 表吗?字符串在同一表的列之一中出现的次数。

我想根据某个位置出现的次数重新排列表格。

请看下面的例子:

id 名称 位置
- ----- --------
1 马克美国
2 迈克美国
3 保罗澳大利亚
4 Pranshu 印度
5 Pranav 印度
6 约翰加拿大
7 Rishab 印度

预期结果:

id 名称 位置
- ----- --------
4 Pranshu 印度
5 Pranav 印度
7 Rishab 印度
1 马克美国
2 迈克美国
3 保罗澳大利亚
6 约翰加拿大

我试过这个查询:

SELECT *, COUNT(location) AS count FROM `tablename` GROUP BY `location` ORDER BY count DESC;
Run Code Online (Sandbox Code Playgroud)

但它向我展示了以下结果,省略了重复出现的位置:

id 名称 位置
- ----- --------
4 Pranshu 印度
1 马克美国
3 保罗澳大利亚
6 约翰加拿大

Str*_*rry 5

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;
Run Code Online (Sandbox Code Playgroud)