维克多阿涛

2023-01-03   阅读量: 110

Mysql

mysql 学习60--各分类用户数量和占比, 销售贡献额和销售贡献额占比,累计销售贡献额和累计贡献额占比

-- 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;


1672729317_441004.png




扫码加入数据分析学习群
0.0000 2 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子