需求场景
在数据处理中,经常需要对数据进行分组,然后对每个分组中的数据进行汇总计算,比如求和、平均值等。此时,可以使用SQL语句中的GROUP BY子句和聚合函数实现。
GROUP BY分组
GROUP BY子句用于将表中的数据按指定的列进行分组。语法如下:
sql
SELECT 列名, 聚合函数(列名)
FROM 表名
GROUP BY 列名
例如,要按性别对学生表中的学生人数进行分组并统计每个性别的学生人数,可以执行以下SQL语句:
sql
SELECT gender, COUNT(*)
FROM student
GROUP BY gender
聚合函数
聚合函数用于对分组后的数据进行汇总计算。常用的聚合函数有:
* SUM:求和
* COUNT:计数
* AVG:平均值
* MIN:最小值
* MAX:最大值
组后相加
在分组后,可以使用SUM聚合函数对分组中的数据进行相加。语法如下:
sql
SELECT 列名, SUM(列名)
FROM 表名
GROUP BY 列名
例如,要按产品类别对订单表中的销售额进行分组并统计每个类别的总销售额,可以执行以下SQL语句:
sql
SELECT category, SUM(amount)
FROM orders
GROUP BY category
优缺点
分组后相加操作的优点是:
* 能够快速对大量数据进行汇总计算
* 减少数据量,提高查询效率
缺点是:
* 只适用于需要汇总计算的场景
* 分组列必须具有明确的区分度
应用场景
分组后相加操作广泛应用于数据分析、报表统计等领域,例如:
* 统计不同地区或年龄段的人口数量
* 计算不同产品或服务类的销售额
* 分析用户不同行为特征的分布情况