HIVE SQL 計算留存率 思路

2021-09-24 18:42:38 字數 2218 閱讀 8160

計算每日訪問使用者在之後日期的留存數

基礎表 每日訪問使用者id

create external table

ifnot

exists user_visit_date (

user_id bigint

comment

'使用者id'

)comment

'每日訪問使用者'

partitioned by

(p_day date

comment

'分割槽日期'

)stored as parquet;

step 1. 先算出歷史訪問使用者 在昨日的 留存數 (關鍵思路)
create external table

ifnot

exists user_before_visit_date (

before_visit_date date

comment

'歷史訪問日期'

, remain_count bigint

comment

'在visit_date留存人數'

)comment

'歷史訪問日期在visit_date的留存人數'

partitioned by

(visit_date date

comment

'分割槽日期'

)stored as parquet;

insert overwrite table user_before_visit_date partition

(visit_date=$)

select

t2.p_day as before_visit_date,

count(1

)as remain_count

from user_visit_date t1

inner

join user_visit_date t2

on t1.user_id = t2.user_id

and t2.p_day >= date_sub($,30)

and t2.p_day < $

where t1.p_day = $

group

by t2.p_day

step 2. 動態分割槽計算 歷史日期的彙總(group by) 留存數
select

max(

if(datediff(visit_date, before_visit_date)=1

, remain_count,0)

)as1_day_remain_count,

-- 1日留存數

max(

if(datediff(visit_date, before_visit_date)=2

, remain_count,0)

)as2_day_remain_count,

-- 2日留存數

max(

if(datediff(visit_date, before_visit_date)=3

, remain_count,0)

)as3_day_remain_count,

-- 3日留存數

max(

if(datediff(visit_date, before_visit_date)=7

, remain_count,0)

)as7_day_remain_count,

-- 7日留存數

max(

if(datediff(visit_date, before_visit_date)=15

, remain_count,0)

)as15_day_remain_count,

-- 15日留存數

max(

if(datediff(visit_date, before_visit_date)=30

, remain_count,0)

)as30_day_remain_count,

-- 30日留存數

before_visit_date as p_day

from user_before_visit_date

where visit_date >= date_sub($,30)

and visit_date <= $

group

by before_visit_date

;

php mysql計算留存率 使用者留存率演算法

玩家在某段時間內註冊開始遊戲,經過一段時間後,仍然繼續遊戲的被認作是留存 這部分使用者佔當時新增使用者的比例即是留存率,會按照每隔1單位時間 例日 周 月 來進行統計。顧名思義,留存指的就是 有多少玩家留下來了 留存使用者和留存率體現了應用的質量和保留使用者的能力。次日留存率 首次登陸後第二天登入遊...

使用者留存率計算

做企業級報表的人經常會遇到留存率的概念。對於不同的專案,留存率的概念也會有所不同。針對我所在的手機應用 手機遊戲方向的使用者留存率統計,在此做一些簡要的說明。使用者留存率這個概念在網上沒有搜到其具體的定義,在此僅對我公司的計算模式進行簡要整理 使用者留存率是只某一基礎使用者群在特定的一段時間內使用某...

sql計算留存 SQL 使用者月留存率

sql 使用者月留存率 sql資料分析 6月4日sql 使用者月留存率 需求背景 根據訂單表,統計每個月在接下來幾個月使用者複購情況 如 5月下單使用者10000人 這10000人又在6月又下單的使用者有5000人,這10000人在7月下單的使用者有8000人 解析思路 核心 資料預處理 使用者,月...