医生
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名患者的医生。请建议我一个查询。
答案 0 :(得分:7)
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
。