我有一个如下所示的数据库:
Dentist | Specialty
Fred General
Susan General
Frank Family
我想选择不同的专业,并且还要计算每种专业的数量,这是我尝试过的:
SELECT DISTINCT Specialty, COUNT(*) FROM dentists
然而,这仅返回第一个专业General
和General
的计数。我如何获得所有这些?
因此,对于上面的简单数据库,我需要知道它们是2 General
和1 Family
答案 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