要查询的表结构以及测试数据如下:
yyyyMM | cum_user(累计用户) | new_user(新用户) |
2018/1 | 8 | 6 |
2018/2 | 8 | 6 |
分组统计并计算新用户占比的查询sql:
select
nvl(yyyyMM,'总计') yyyyMM,
sum(cum_user) cumUser,
sum(new_user) newUser,
sum(new_user)/sum(cum_user) newUserRatio --新用户占比:新用户/累计用户
from roll_test_table
group by rollup(yyyyMM);
查询结果如下:
yyyymm | cumuser | newuser | newuserratio |
2018/1 | 8 | 6 | 0.75 |
2018/2 | 8 | 6 | 0.75 |
总计 | 16 | 12 | 0.75 |