如何根据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/