简单
技术面试0 次浏览

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

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

答题要点

推荐答题框架:采用对比分析法,先分别阐述 GROUP BY 和 HAVING 的作用,再对比两者的区别。关键要点如下:1. GROUP BY 作用:用于对查询结果进行分组,将具有相同列值的行归为一组,常与聚合函数(如 SUM、COUNT 等)一起使用,方便对每组数据进行统计分析。2. HAVING 作用:用于筛选分组后的结果,它与 WHERE 类似,但 WHERE 是在分组前筛选,HAVING 是在分组后筛选。3. 区别:WHERE 不能使用聚合函数,而 HAVING 可以;WHERE 用于筛选行,HAVING 用于筛选分组。示例话术:“GROUP BY 子句主要是将数据按照指定列进行分组,比如按部门对员工数据分组,方便统计每个部门的员工数量等信息。HAVING 则是在分组后对结果进行筛选,像筛选出员工数量大于 10 的部门。两者的主要区别在于作用时机和能否使用聚合函数。”