[英]SQL select from inner join where count greater than
醫生
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 名患者的醫生。 請建議我查詢。
使用HAVING
子句
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
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.