-- 4.6 各分类用户数量和占比, 销售贡献额和贡献额占比,以及累计销售贡献额和累计贡献额占比
#方法一
select 用户价值分类, count(user_id) 人数 ,count(user_id)/ (select count(user_id) 总人数 from RFM1) 人数占比,
sum(M) 销售贡献额, sum(M)/ (select sum(M) 总销售额 from RFM1) 销售贡献额占比,
SUM(sum(M)) OVER( ORDER BY sum(M) DESC) AS 累计销售贡献额,
SUM(sum(M)) OVER( ORDER BY sum(M) DESC) /(select sum(M) 总销售额 from RFM1) AS 累计销售贡献额占比
from RFM1
group by 用户价值分类
order by sum(M) DESC;
#以下为错误方法, 加上了Partition by后就是分区内的累计求和,这里要各分区总体的求和,不用加partition by,要会从第一个分区向当前分区累计求和
#刚开始我写错了,看了半天没发现这个错误
select 用户价值分类, count(user_id) 人数 ,count(user_id)/ (select count(user_id) 总人数 from RFM1) 人数占比,
sum(M) 销售贡献额, sum(M)/ (select sum(M) 总销售额 from RFM1) 销售贡献额占比,
SUM(sum(M)) OVER(PARTITION BY 用户价值分类 ORDER BY sum(M)) AS 累计销售贡献额,
SUM(sum(M)) OVER(PARTITION BY 用户价值分类 ORDER BY sum(M)) /(select sum(M) 总销售额 from RFM1) AS 累计销售贡献额占比
from RFM1
group by 用户价值分类
order by sum(M) DESC;
#方法二
select *,sum(销售贡献额) OVER( ORDER BY 销售贡献额 DESC) AS 累计销售贡献额,
SUM(销售贡献额) OVER(ORDER BY 销售贡献额 DESC) /(select sum(M) 总销售额 from RFM1) AS 累计销售贡献额占比
from
(select 用户价值分类, count(user_id) 人数 ,count(user_id)/ (select count(user_id) 总人数 from RFM1) 人数占比,
sum(M) 销售贡献额, sum(M)/ (select sum(M) 总销售额 from RFM1) 销售贡献额占比
from RFM1
group by 用户价值分类
order by sum(M) DESC )t1;








暂无数据