累计求值问题--求和及求比例

表名:t3
表字段及内容
累计求值问题--求和及求比例_第1张图片

 问题一:按 a 分组按 b 字段排序,对 c 累计求和

输出结果如下所示
累计求值问题--求和及求比例_第2张图片
思路:聚合函数开窗问题
select a,b,c,sum(c) over(partition by a order by b) as sum_c 
from t3;
问题二:按 a 分组按 b 字段排序,对 c 取累计平均值
输出结果如下所示
累计求值问题--求和及求比例_第3张图片
select a,b,c,avg(c) over(partition by a order by b) as avg_c from t3;
问题三:按 a 分组按 b 字段排序,对 b 取累计排名比例
输出结果如下所示
累计求值问题--求和及求比例_第4张图片
select a,b,c,
round(row_number() over(partition by a order by b) / (count(c) over(partition by a)),2) 
as ratio_c 
from t3 
order by a,b;
问题四:按 a 分组按 b 字段排序,对 b 取累计求和比例
输出结果如下所示
累计求值问题--求和及求比例_第5张图片
select a,b,c,round(sum(c) over(partition by a order by b)
 / (sum(c) over(partition by a)),2) a s ratio_c
 from t3 order by a,b;

 

 

 

你可能感兴趣的:(经典SQL题,sql,经典SQL题)