處理 SQL 聚合中的零約會計數
標準 SQL COUNT
聚合可能會錯過零預約的個人。 解決方案涉及使用外連接來包含這些零計數條目。
讓我們舉例:
此查詢計算每個人的預約,但忽略那些沒有預約的:
<code class="language-sql">SELECT person_id, COUNT(person_id) AS appointment_count FROM appointment GROUP BY person_id;</code>
要包含零預約的個人,請使用 LEFT JOIN
和 person
表作為驅動表:
<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS appointment_count FROM person p LEFT JOIN appointment a ON p.person_id = a.person_id GROUP BY p.person_id;</code>
此LEFT JOIN
回傳不存在約會的NULL
的appointment.person_id
。 COUNT
忽略 NULL
價值,正確報告這些人的零預約。
這種方法依賴於理解外連接的工作原理。 LEFT JOIN
確保包含左表中的所有行(在本例中為 person
),即使右表 (appointment
) 中沒有相符的行。
要更深入了解外部聯結和處理 NULL
值,請參考以下資源:
以上是如何在 SQL COUNT 聚合中包含零約會結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!