如何根据spesific列中出现的次数对mysql表进行排序?
示例表:

ID Name
1  Alfred
2  Alfred
3  Burt
4  Alfred
5  Jill
6  Jill
7  Jill
8  Jill
9  Burt

排序后的表应该如下所示,因为“Jill”是出现最多的名称,所以应该先排序,依此类推:
ID Name
5  Jill
6  Jill
7  Jill
8  Jill
1  Alfred
2  Alfred
4  Alfred
3  Burt
9  Burt

最佳答案

您必须将信息引入查询中。这通常使用join来完成:

select e.*
from example e join
     (select name, count(*) as cnt
      from example
      group by name
     ) en
     on e.name = en.name
order by cnt desc, e.name, e.id;

注意order by不只是按计数排序。它也按名字排序。如果两个名字有相同的计数,那么它会把它们放在一起。

关于mysql - 按出现次数对mysql进行排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24790351/

10-09 02:08