GUIDE深度 · Deep dive
SQL JOIN 和 GROUP BY 怎么用?
JOIN 把两张表按关联键拼在一起,GROUP BY 把行按维度分组,聚合函数再算每组的值。JOIN 后先想“一行是什么”,再决定 GROUP BY 的粒度。
JOIN
INNER JOIN 只保留两边都匹配的行。
LEFT JOIN 保留左表全部行,右表缺失为 NULL。
GROUP BY
SELECT 里的非聚合列要出现在 GROUP BY。
HAVING 过滤聚合后的组,WHERE 过滤行。
常见问题
COUNT(*) 和 COUNT(col) 区别?
COUNT(*) 数行;COUNT(col) 忽略 NULL。
能 GROUP BY 多个列吗?
可以;粒度是这些列的组合。