选择列和最大值

时间:2015-12-10 23:20:58

标签: sql sql-server select

我会解释我的问题,以便更清楚。

我必须选择医院用量最多的医院。

我的表格如下:

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不是很有经验,我可以看到我的逻辑在这里失败了。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

您可以使用top子句返回有序查询的第一行:

SELECT   TOP 1 codhospital, COUNT(codmedic) 
FROM     Medic_Hospital
GROUP BY codhospital
ORDER BY 2 DESC