GUIDE深度 · Deep dive

SQL JOIN 和 GROUP BY 怎么用?

JOIN 把两张表按关联键拼在一起,GROUP BY 把行按维度分组,聚合函数再算每组的值。JOIN 后先想“一行是什么”,再决定 GROUP BY 的粒度。

更新 2026-10-30 · 公式可核验

JOIN

INNER JOIN 只保留两边都匹配的行。

LEFT JOIN 保留左表全部行,右表缺失为 NULL。

GROUP BY

SELECT 里的非聚合列要出现在 GROUP BY。

HAVING 过滤聚合后的组,WHERE 过滤行。

常见问题

COUNT(*) 和 COUNT(col) 区别?

COUNT(*) 数行;COUNT(col) 忽略 NULL。

能 GROUP BY 多个列吗?

可以;粒度是这些列的组合。

数据来源

相关计算器

SQL 查询闯关:1000 道 SELECT 练习题游戏化学习1000 道 SQL 查询题,覆盖 SELECT、WHERE、JOIN、GROUP BY、HAVING 和子查询,分 50 关,按遗忘曲线复习。

更多指南

平假名和片假名有什么区别?阅读指南遗忘曲线怎么复习?阅读指南音读和训读怎么分?阅读指南N5 汉字学习顺序阅读指南