MySQL同时选择不同的项目和计数

时间:2017-02-12 01:24:38

标签: mysql

我有一个如下所示的数据库:

Dentist | Specialty
Fred       General
Susan      General
Frank      Family

我想选择不同的专业,并且还要计算每种专业的数量,这是我尝试过的:

SELECT DISTINCT Specialty, COUNT(*) FROM dentists

然而,这仅返回第一个专业GeneralGeneral的计数。我如何获得所有这些?

因此,对于上面的简单数据库,我需要知道它们是2 General1 Family

1 个答案:

答案 0 :(得分:2)

您正在寻找GROUP BY命令:

SELECT Specialty, COUNT(*) FROM dentists GROUP BY Specialty

GROUP BY告诉MySQL收集所有类似的项目,因此您不再需要DISTINCT。正如其他人所建议的那样,如果您想将其限制为超过30行的Specialties,则可以添加HAVING COUNT(*) > 30,因此您的最终查询将是

SELECT Specialty, COUNT(*) FROM dentists GROUP BY Specialty HAVING COUNT(*) > 30