首页 >数据库 >mysql教程 >如何使用外连接在 SQL COUNT 聚合中包含零结果?

如何使用外连接在 SQL COUNT 聚合中包含零结果?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-08 18:17:43303浏览

How to Include Zero Results in SQL COUNT Aggregates Using Outer Joins?

使用外连接处理 SQL COUNT 聚合中的零计数

SQL 的 COUNT 聚合函数通常对非空值进行计数,忽略结果为零的实体。 要包含这些零计数实体,请使用外连接。 与内联接不同,外联接保留一个或两个表中的所有行,即使另一个表中没有匹配项也是如此。

让我们用两个表来说明:personappointmentappointment 通过 person 链接到 person_id。 要计算每人的预约(包括零预约的预约),请使用 LEFT JOIN:

<code class="language-sql">SELECT
  p.person_id,
  COUNT(a.person_id) AS number_of_appointments
FROM
  person p
LEFT JOIN
  appointment a
ON
  p.person_id = a.person_id
GROUP BY
  p.person_id;</code>

LEFT JOIN 确保包含 person 表(别名为 p)中的所有行。 如果某人没有约会,a.person_id 将为 NULL,并且 COUNT(a.person_id) 将为该人返回 0。 这提供了所有人的完整统计,准确反映了零预约情况。 GROUP BY 子句确保计数是按人汇总的。

以上是如何使用外连接在 SQL COUNT 聚合中包含零结果?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn