简单
技术面试0 次浏览

请简述 SQL 中 GROUP BY 和 HAVING 子句的作用和区别。

微软中国后端工程师
SQL数据库

答题要点

推荐答题框架:采用直接阐述法,先分别解释 GROUP BY 和 HAVING 的作用,再说明二者区别。关键要点:1. GROUP BY 作用:用于将结果集按照一个或多个列进行分组,常与聚合函数一起使用,如 SUM、COUNT 等,方便对每组数据进行统计分析。2. HAVING 作用:用于对分组后的结果进行筛选,它与 WHERE 类似,但 WHERE 是对原始数据筛选,HAVING 是对分组后数据筛选。3. 区别:执行顺序不同,GROUP BY 先分组,HAVING 后筛选;使用场景不同,WHERE 不能用聚合函数筛选,HAVING 可以。示例话术:GROUP BY 子句主要是把结果集按指定列分组,便于进行聚合操作。比如统计每个部门的员工数量。而 HAVING 子句是在分组完成后,对分组结果筛选,像筛选出员工数量大于 10 的部门。二者区别在于执行顺序和使用场景,WHERE 不能对聚合结果筛选,HAVING 可以。