例如下列分组汇总SQL语句,返回本月每个产品类别的销售总金额:
select 产品类别,sum(单价*数量) as 销售金额 from 销售记录
where Date_Format(销售日期,'%Y%m')=Date_Format(now(),'%Y%m')
group by 产品类别
有时对数据表的 *** 作不是表中数据本身,而是表中数据的汇总,例如某一列数据的平均值,最大值,最小值等。而对于这些常用的数据汇总处理,MySQL提供了函数来处理。
SQL聚集函数
函数
说明
COUNT()
返回某列的行数
MAX()
返回某列最大值
MIN()
返回某列最小值
AVG()
返回某列平均值
SUM()
返回某列值之和
select 商品名称,sum(数量) as 总量,sum(金额) as 总金额,
sum(case 线号 when '1号线' then 数量 else 0 end) as 1号线数量,
sum(case 线号 when '2号线' then 数量 else 0 end) as 2号线数量,
sum(case 线号 when '3号线' then 数量 else 0 end) as 3号线数量,
sum(case 线号 when '4号线' then 数量 else 0 end) as 4号线数量,
sum(case 线号 when '1号线' then 金额 else 0 end) as 1号线金额,
sum(case 线号 when '2号线' then 金额 else 0 end) as 2号线金额,
sum(case 线号 when '3号线' then 金额 else 0 end) as 3号线金额,
sum(case 线号 when '4号线' then 金额 else 0 end) as 4号线金额
from
(
select 商品名称,线号,sum(数量) as 数量,sum(金额) as 金额
from Table1
group by 商品名称,线号
) T1
group by 商品名称
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)