简单
技术面试0 次浏览

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

数据分析师
SQL数据分组条件筛选

答题要点

在 SQL 中,GROUP BY 子句用于将数据按照指定的列进行分组。它会把具有相同值的行划分到同一个组中,通常与聚合函数(如 SUM、COUNT、AVG 等)一起使用,以便对每个组的数据进行汇总计算。例如,对销售表按产品类别分组,然后计算每个类别的销售总额。而 HAVING 子句用于在分组之后对分组结果进行筛选。它与 WHERE 子句的区别在于,WHERE 子句是在分组之前对原始数据进行筛选,而 HAVING 子句是对分组后的结果进行筛选。HAVING 子句必须与 GROUP BY 子句一起使用,并且可以使用聚合函数。例如,我们可以使用 HAVING 子句筛选出销售总额大于 1000 的产品类别。总结来说,GROUP BY 是实现数据分组的关键,而 HAVING 是对分组结果进行进一步筛选的工具,二者结合可以更灵活地处理和分析数据。