SQL面試必考——計算留存率
leetcode 1097. 遊戲玩法分析 V
計算第一天的留存率
法一:視窗函式
- 找到安裝遊戲的時間,及每個玩家第一次登陸的時間,通過min()+視窗函式,可以既找到最小值,又保留原來的值。(若使用聚合函式group by則只能保留一組數)
select player_id,
event_date,
min(event_date) over(partition by player_id) install_dt
from Activity;
- 計算第一天的登陸玩家人數,和第二天仍然登陸的人數。用group by分組計算。
select distinct install_dt,
count(distinct player_id) installs,
round(sum(if datediff(event_date,install_date)=1,1,0)/count(distinct player_id),2) Day1_retention
from
(select player_id,
event_date,
min(event_date) over(partition by player_id) install_dt
from Activity) t
group by install_dt;
法二:自連線
- 計算第一天登陸時間
- 通過左連線能夠得到第一天登陸的id以及第二天是否繼續登陸的資訊,如果第二天沒有登陸,則為null。count(*)會將null算入。
select distinct install_dt,
count(*) installs,
round(count(t2.event_date)/count(*),2) Day1_retention
from
(select player_id,min(event_date) install_dt
from Activity
group by player_id) t1
left join Activity t2
on t1.player_id = t2.player_id
and datediff(t2.event_date,t1.install_dt)=1
group by install_dt;
左連線得到的結果如下
t1.player_id | t1.install_dt | t2.player_id | t2.event_date |
---|---|---|---|
1 | 2016-03-01 | 1 | 2016-03-02 |
2 | 2017-06-25 | null | null |
3 | 2016-03-01 | null | null |
相關文章
- 面試必考:秒殺系統如何設計?面試
- js面試必考三問JS面試
- 面試必考:網路問題面試
- 100家IT 名企面試必考面試題java系列面試題Java
- 長期留存率 — 為何以 180 日留存率替代 30 日留存率(上)
- 2018最新《BAT Java必考面試題集》BATJava面試題
- Go面試必考題目之method篇Go面試
- Go面試必考題目之slice篇Go面試
- 大型網際網路公司必考java面試題與面試技巧Java面試題
- 分享一道Go面試必考的題Go面試
- 留存率預估
- 雲端計算面試題及答案,AWS雲端計算面試題面試題
- BAT面試必考:ThreadLocal ,ThreadLocalMap 和Thread 的關係BAT面試thread
- 雲端計算面試題及答案,雲端計算崗位精品面試題面試題
- 2019年,Python工程師必考的6個面試題,Python面試題No5Python工程師面試題
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案二面試題筆試
- 雲端計算面試題筆試錦集,雲端計算實用面試題答案一面試題筆試
- 雲端計算工程師面試題集錦,雲端計算面試題及答案工程師面試題
- Linux雲端計算面試題第二彈,樂視雲端計算面試題Linux面試題
- 雲端計算面試題及答案,雲端計算工程師面試題集錦面試題工程師
- 五分鐘學Java:如何學習Java面試必考的網路程式設計Java面試程式設計
- 單元測試的覆蓋率計算
- 如何提升會員留存率?
- java面試--計算機網路Java面試計算機網路
- 「高頻必考」Docker&K8S面試題和答案DockerK8S面試題
- 計算機面試重難點之計算機網路面試計算機網路
- 雲端計算工程師面試題集錦,常見雲端計算面試題及答案工程師面試題
- 雲端計算大資料面試題,雲端計算大資料面試題集錦大資料面試題
- 機率面試題面試題
- 限時看!阿里、華為資料結構面試必考題!阿里資料結構面試
- SQL 有序計算SQL
- MySQL 留存率和復購率的場景分析MySql
- SQL崗位30個面試題,SQL面試問題及答案SQL面試題
- 面試python的必考題,收藏好了!拿高薪就靠它了面試Python高薪
- 基礎面試題 — 計算機網路面試題計算機網路
- 面試準備——計算機網路(https)面試計算機網路HTTP
- SQL 轉置計算SQL
- 面試雲端計算崗位時這些面試題不能錯過面試題