--======================聚合函数============================ --求和sum 求平均avg 求个数count 最大值max 最小值min select sum(金额) as 总金额, avg(金额) as 平均金额, max(金额) as 最大金额, min(金额) as 最小金额, COUNT(*) as 订单数 from 数据 --为什么运行时报错? select 商品,SUM(金额) as 总金额 from 数据 --聚合之后的1个结果,无法与多行数据对应,所以报错 --结论1:select使用了聚合函数之后,后面不能直接跟其他字段 select SUM(金额) as 总金额 from 数据 select 商品 from 数据 --======================分组统计============================ --统计一下,每个商品的总销售额,按商品类分组统计 --使用了SUM(金额)之后,它就不是表示所有商品的金额总和,而是表示每一个组 --内部的总和 --结论2:select后面如果有聚合,那么如果要跟其他字段,那么“其他字段” --要么分组、要么聚合。 select 商品, SUM(金额) as 总金额, AVG(金额) as 平均金额, MAX(金额) as 最大金额, MIN(金额) as 最小金额 from 数据 group by 商品-----分组统计中 先执行分组 再执行聚合 --======================分组筛选============================ --统计一下每个部门金额达到100的订单的销售总额 select 销售部门,SUM(金额) as 总销售额 from 数据 group by 销售部门 select 销售部门,SUM(金额) as 总销售额 from 数据 where 金额>=100 group by 销售部门 --where 金额>=100 这个筛选是分组之前对数据源的筛选。 --统计一下销售总额超过8000的部门信息 select 销售部门,SUM(金额) as 总销售额 from 数据 group by 销售部门 having SUM(金额)>=8000 --having SUM(金额)>=8000 这个筛选是在分组之后的基础上做的筛选
时间: 2024-10-08 17:25:37