簡體   English   中英

SQL select from inner join where count大於

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM