Jim*_*myJ 212 mysql sql database distinct
我试图找到一个MySQL查询,它将在特定字段中查找不同的值,计算该值的出现次数,然后按计数对结果进行排序.
示例db
id name
----- ------
1 Mark
2 Mike
3 Paul
4 Mike
5 Mike
6 John
7 Mark
Run Code Online (Sandbox Code Playgroud)
预期结果
name count
----- -----
Mike 3
Mark 2
Paul 1
John 1
Run Code Online (Sandbox Code Playgroud)
谢谢
Amb*_*ber 384
SELECT name,COUNT(*) as count FROM tablename GROUP BY name ORDER BY count DESC;
Run Code Online (Sandbox Code Playgroud)
Pas*_*TIN 13
这样的事情怎么样:
select name, count(*) as num
from your_table
group by name
order by count(*) desc
Run Code Online (Sandbox Code Playgroud)
即,您正在选择名称和出现的次数; 但按名称分组,因此每个名称只选择一次.
然后,你按次数订购,desc; 让出现频率最高的用户排在第一位.
只需将Amber的COUNT(*)更改为COUNT(1)即可获得更好的性能。
SELECT name, COUNT(1) as count
FROM tablename
GROUP BY name
ORDER BY count DESC;
Run Code Online (Sandbox Code Playgroud)