select retention
, 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
このクエリは 2 つの列を表示します。最初の列は今年の日 (0 日は 1 月 1 日、259 日は今日 9 月 16 日) であり、2 番目の列は保持です。すべてのユーザーが保持されているため、0 日目は 428,000 で、1 日目は 300K (128,000 人が最初の日以降にログインしなかったため) であり、この数は時間の経過とともに減少し続けています。各日が 0 日目であるパーセンテージの別の列を表示したいのですが、それで十分ですか、それとも詳細を提供する必要がありますか?