按出现次数排序mysql

Kri*_*eth 1 mysql sorting

如何按特定列中的出现次数订购mysql表?

示例表:

ID Name
1  Alfred
2  Alfred
3  Burt
4  Alfred
5  Jill
6  Jill
7  Jill
8  Jill
9  Burt
Run Code Online (Sandbox Code Playgroud)

排序表应该如下所示,因为"Jill"是最常出现的名称,应该先排序,依此类推:

ID Name
5  Jill
6  Jill
7  Jill
8  Jill
1  Alfred
2  Alfred
4  Alfred
3  Burt
9  Burt
Run Code Online (Sandbox Code Playgroud)

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

请注意,order by不仅按计数订单.它还按名称命令.如果两个名称具有相同的计数,那么它将将它们保持在一起.