[英]SQL - Grouping results by totaling
以下查询给出了两列的输出:
Day Num_Users_Retained
0 209312
1 22139
2 11457
等等,一直到259(2012年的每一天)..但是我希望第0天在num_users_retained中包含所有值的总和,从0到259 ......然后我希望第1天包括所有值的总和从1-259,依此类推,直到我到达最后一天。 这是原始查询:
--Retention since January 1,2012--
select retention as Day,count(retention) as Num_Users_Retained
from (select player_id,round(init_dtime-create_dtime,0) as retention
from player
where Trunc(Create_Dtime) >= To_Date('2012-jan-01','yyyy-mon-dd')
and init_dtime is not null)
Group by retention
order by 1
有什么建议么?
使用分析功能
select
day,
num_users_retained,
sum(num_users_retained) over (order by day) as total_num_users_retained
from churn
http://www.sqlfiddle.com/#!4/24e02/1
此查询将写入结果集。 您可以将其应用于原始查询。
select retention as Day
, Sum(count(retention)) over(order by retention desc) as Num_Users_Retained
from (select player_id
, round(init_dtime-create_dtime,0) as retention
from player
where Trunc(Create_Dtime) >= To_Date('2012-jan-01','yyyy-mon-dd')
and init_dtime is not null
)
Group by retention
order by retention
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.