按出现次数对mysql进行排序

时间:2014-07-16 20:44:42

标签: mysql sorting

如何按特定列中的出现次数订购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

1 个答案:

答案 0 :(得分:5)

您必须将信息引入查询。这通常使用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不仅按计数排序。它还按名称命令。如果两个名称具有相同的计数,那么它将使它们保持在一起。