处理 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中文网其他相关文章!