SQL - 显示最大计数的条目?

新手上路,请多包涵
CREATE TABLE doctor( patient CHAR(13), docname CHAR(30) );

假设我有一个这样的表格,那么我将如何显示患者最多的医生的名字?就像如果最多是三个,两个医生有三个病人,那么我会显示他们两个的名字。

这将获得最多的患者:

 SELECT MAX(count)
FROM (SELECT COUNT(docname) FROM doctor GROUP BY docname) a;

这是所有的医生和他们有多少病人:

 SELECT docname, COUNT(docname) FROM doctor GROUP BY name;

现在我不知道如何将它们组合起来仅列出拥有最多患者的医生的姓名。

谢谢。

原文由 Stewage 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 295
1 个回答

如果您不需要关心性能,我认为只需排序并选择第一个元素。像这样的东西:

 SELECT docname, COUNT(docname) as CNT
FROM doctor
WHERE docname = docname
GROUP BY docname
ORDER BY CNT DESC
LIMIT 1

原文由 lehanh 发布,翻译遵循 CC BY-SA 4.0 许可协议