MySQL:计算DISTINCT值的出现次数

时间:2009-08-28 11:09:57

标签: mysql sql database distinct

我正在尝试找到一个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

由于

3 个答案:

答案 0 :(得分:364)

SELECT name,COUNT(*) as count FROM tablename GROUP BY name ORDER BY count DESC;

答案 1 :(得分:11)

这样的事情:

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

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

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

答案 2 :(得分:4)

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

SELECT name, COUNT(1) as count 
FROM tablename 
GROUP BY name 
ORDER BY count DESC;