我会解释我的问题,以便更清楚。
我必须选择医院用量最多的医院。
我的表格如下:
Medic_Hospital values (codhospital,codmedic)
我试过了:
SELECT MAX(codmedic) FROM Medic_Hospital
但只返回数字6 (这是医生的身份之一)
SELECT codhospital,count(codmedic) FROM Medic_Hospital
where max(codmedic) = count(codmedic)
group by codhospital
但这也失败了
聚合可能不会出现在WHERE子句中,除非它位于HAVING子句或选择列表中包含的子查询中,并且要聚合的列是外部引用。
SELECT codhospital,MAX(COUNT(codmedic)) from Medic_Hospital
但是失败了
“无法对包含。的表达式执行聚合函数 聚合或子查询。“
我对SQL不是很有经验,我可以看到我的逻辑在这里失败了。有人能指出我正确的方向吗?
答案 0 :(得分:3)
您可以使用top
子句返回有序查询的第一行:
SELECT TOP 1 codhospital, COUNT(codmedic)
FROM Medic_Hospital
GROUP BY codhospital
ORDER BY 2 DESC