MySQL:计算DISTINCT值的出现次数

问题描述 投票:195回答:3

我试图找到一个MySQL查询,它将在特定字段中找到DISTINCT值,计算该值的出现次数,然后按计数对结果进行排序。

示例db

id         name
-----      ------
1          Mark
2          Mike
3          Paul
4          Mike
5          Mike
6          John
7          Mark

预期结果

name       count
-----      -----
Mike       3
Mark       2
Paul       1
John       1

谢谢

mysql sql database distinct
3个回答
368
投票
SELECT name,COUNT(*) as count FROM tablename GROUP BY name ORDER BY count DESC;

13
投票

这样的事情怎么样:

select name, count(*) as num
from your_table
group by name
order by count(*) desc

即,您正在选择名称和出现的次数;但按名称分组,因此每个名称只选择一次。

然后,你按次数订购,desc;让出现频率最高的用户排在第一位。


5
投票

刚刚将Amber的COUNT(*)更改为COUNT(1)以获得更好的性能。

SELECT name, COUNT(1) as count 
FROM tablename 
GROUP BY name 
ORDER BY count DESC;
© www.soinside.com 2019 - 2024. All rights reserved.