简单
技术面试0 次浏览简述 SQL 中 GROUP BY 和 HAVING 子句的作用和区别。
数据分析师
SQL数据查询
答题要点
在 SQL 中,GROUP BY 和 HAVING 子句都与数据分组和筛选有关,但它们的作用有所不同。GROUP BY 子句用于将查询结果按照一个或多个列进行分组,它将具有相同值的记录归为一组,通常与聚合函数(如 SUM、AVG、COUNT 等)一起使用,以便对每个组进行统计计算。例如,要统计每个部门的员工数量,可以使用 GROUP BY 按部门进行分组,再使用 COUNT 函数统计每组的员工数。而 HAVING 子句用于对分组后的结果进行筛选,它与 WHERE 子句类似,但 WHERE 子句是在分组前对记录进行筛选,HAVING 子句是在分组后对组进行筛选。例如,要筛选出员工数量大于 10 的部门,就可以使用 HAVING 子句对 GROUP BY 分组后的结果进行过滤。总结来说,GROUP BY 用于分组,HAVING 用于对分组后的结果进行条件筛选。