SQL从内连接中选择count大于

时间:2014-03-02 13:34:22

标签: mysql sql sql-server

医生

doctorid (PK)
doctorname

患者

patientid (PK)
patientname
doctorid

我有以下查询,以获取医生详细信息,了解他/她咨询的患者人数。假设患者只有一位医生可以咨询。

select d.doctorid,d.doctorname,count(p.patientid)
from doctor d
inner join patient p
on d.doctorid = p.doctorid
group by p.doctorid

现在我需要获得相同的信息,但仅限于有超过1名患者的医生。请建议我一个查询。

1 个答案:

答案 0 :(得分:7)

使用HAVING clause

SELECT d.doctorid,
       d.doctorname,
       COUNT(p.patientid) AS patients
  FROM doctor d
       INNER JOIN patient p
                  ON d.doctorid = p.doctorid
GROUP BY 
       d.doctorid,
       d.doctorname
HAVING patients > 1

我使用了别名(patients)而不是COUNT(p.patientid),因为HAVING子句允许这样做。但你也可以坚持COUNT(p.patientid) 另外,我建议您使用GROUP BY子句中的所有非聚合列 而且,如果您回顾doctorname,您可能不必检索doctorid