我剛剛得到了一些SQL的困擾。我不認爲我可以出色地提出這個問題 - 所以讓我給你看看。如何在COUNT聚合中包含「零」/「0」結果?
我有兩張桌子,一個叫人,一個叫約會。我正在嘗試返回一個人的約會次數(包括零次數)。約會包含person_id
,每個約會有person_id
。所以COUNT(person_id)
是一個明智的做法。
查詢:
SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;
將正確返回,約會爲person_id擁有的數量。但是,一個沒有任命的人不會被退回(顯然,因爲他們不在該表中)。
調整,以從人表取爲person_id的發言給了我這樣的:
SELECT person.person_id, COUNT(appointment.person_id) AS "number_of_appointments"
FROM appointment
JOIN person ON person.person_id = appointment.person_id
GROUP BY person.person_id;
然而,這仍然會只返回一個爲person_id誰擁有預約,不是我想要的是與人返回誰有0個約會!
有什麼建議嗎?
由於表未包含在查詢中,GROUP BY看起來像原來問題中的拼寫錯誤。 – 2013-02-10 00:07:41
@JoachimIsaksson我的錯誤。當然 :) – 2013-02-10 00:08:48