如何按特定列中的出现次数订购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)
您必须将信息引入查询.这通常使用以下方法完成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不仅按计数订单.它还按名称命令.如果两个名称具有相同的计数,那么它将将它们保持在一起.