首页/数据/SQL 速查/左连接后的计数口径
本包目录(311 条)

左连接后的计数口径

左连接统计时 COUNT(*) 统计连接后的行数(含补 NULL 行),COUNT(右表列) 只统计真正匹配上的行。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT u.id,
       COUNT(*)                    AS joined_rows,
       COUNT(o.id)                 AS matched_orders,
       COALESCE(SUM(o.amount), 0)  AS total_amount
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id;
COUNT(*)连接后的全部行(未匹配用户为 1 行)
COUNT(o.id)非 NULL 的匹配行(未匹配用户为 0)
SUM未匹配时 SUM 为 NULL,用 COALESCE 兜底为 0

易错点

  • 用 COUNT(*) 统计“每用户订单数”会把 0 单用户统计成 1,改用 COUNT(o.id)
  • SUM 在无匹配行时为 NULL,报表直接展示会显示空,按需 COALESCE

数据来源与参考

  • MySQL 8.0 Reference Manual · Aggregate Functions
  • PostgreSQL Documentation · Aggregate Functions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌