一、問題1:留存率計算1.1計算某日留存率(次日、3日、7日、30日)
--計算次日、3日、7日、30日留存率
select log_day,
count
(user_id_d1)
/count
(user_id_d0) retention_d1,
count
(user_id_d3)
/count
(user_id_d0) retention_d3,
count
(user_id_d7)
/count
(user_id_d0) retention_d7,
count
(user_id_d30)
/count
(user_id_d0) retention_d30 from
(--匹配後續
(--找出新增in(
select
where b.log_day)aleft
join user_log b on a.log_day=
(b.log_day-1)
left
join user_log c on a.log_day=
(c.log_day-3)
left
join user_log d on a.log_day=
(d.log_day-7)
left
join user_log e on a.log_day=
(e.log_day-30)
group
by log_day
1.2計算每日留存率(次日、3日、7日、30日)
--建立留存率儲存表
create
table user_retention_monitor (
log_day date
,retention_d1 number,retention_d3 number,retention_d7 number,retention_d30 number)
;--先清空表
truncate
table user_retention_monitor;
declare
daydate
;--宣告變數
begin
select
min(log_day)
into
dayfrom user_log;
--變數賦初值
loop
insert
into user_retention_monitor
--計算留存率
select log_day,
count
(user_id_d1)
/count
(user_id_d0) retention_d1,
count
(user_id_d3)
/count
(user_id_d0) retention_d3,
count
(user_id_d7)
/count
(user_id_d0) retention_d7,
count
(user_id_d30)
/count
(user_id_d0) retention_d30 from
(--匹配後續
(--找出新增in(
select
where b.log_day)a left
join user_log b on a.log_day=
(b.log_day-1)
left
join user_log c on a.log_day=
(c.log_day-3)
left
join user_log d on a.log_day=
(d.log_day-7)
left
join user_log e on a.log_day=
(e.log_day-30)
group
by log_day;
commit
;day:=
day+1;
exit
when
day>trunc(sysdate)
;end
loop
;end;/
select
*from user_retention_monitor;
SQL計算留存率等指標
1.1計算某日留存率 次日 3日 7日 30日 計算次日 3日 7日 30日留存率 select log day,count user id d1 count user id d0 retention d1,count user id d3 count user id d0 retention d3...
php mysql計算留存率 使用者留存率演算法
玩家在某段時間內註冊開始遊戲,經過一段時間後,仍然繼續遊戲的被認作是留存 這部分使用者佔當時新增使用者的比例即是留存率,會按照每隔1單位時間 例日 周 月 來進行統計。顧名思義,留存指的就是 有多少玩家留下來了 留存使用者和留存率體現了應用的質量和保留使用者的能力。次日留存率 首次登陸後第二天登入遊...
使用者留存率計算
做企業級報表的人經常會遇到留存率的概念。對於不同的專案,留存率的概念也會有所不同。針對我所在的手機應用 手機遊戲方向的使用者留存率統計,在此做一些簡要的說明。使用者留存率這個概念在網上沒有搜到其具體的定義,在此僅對我公司的計算模式進行簡要整理 使用者留存率是只某一基礎使用者群在特定的一段時間內使用某...