sql-使用者月留存率;
sql資料分析 6月4日sql-使用者月留存率;
需求背景:
根據訂單表,統計每個月在接下來幾個月使用者複購情況;(如:5月下單使用者10000人;這10000人又在6月又下單的使用者有5000人,這10000人在7月下單的使用者有8000人;)
解析思路:
核心**:
# 資料預處理-使用者,月份去重;
drop table if exists tmp_user_retaion ;
create table tmp_user_retaion
as select month as dt,userid
from odl_user_retain
group by month,userid;
# 留存計算;
select t1.dt as 自然月份,
t2.dt as 複購月份,
count(distinct t2.userid) as 複購使用者數,
count(distinct t1.userid) as 總使用者數
from tmp_user_retaion t1
left join tmp_user_retaion t2
on (t1.userid=t2.userid and t1.dt < t2.dt)
group by t1.dt,t2.dt圖表展示:資料預處理
留存計算:
原始表資料:
create table `odl_user_retain` (
`month` bigint(20) default null,
`userid` bigint(20) default null
) engine=innodb default charset=utf8mb4 collate=utf8mb4_bin
延伸:
t1.dt <= t2.dt ,新增乙個等號,可以看看有什麼效果;
from tmp_user_retaion t1
left join tmp_user_retaion t2
on (t1.userid=t2.userid and t1.dt <= t2.dt)
mysql統計使用者留存 SQL 統計使用者留存
問題描述 有乙個用來記錄每日客戶消耗資料的表 t,它的表結構如下 要求 統計出頭部客戶 腰部客戶 尾部客戶在上個月 2020 06 01 2020 06 30 的留存情況。輸出結果的格式 資料定義 頭部客戶 上個月消耗金額大於等於 30000 的客戶 腰部客戶 上個月消耗金額在 10000 3000...
SQL 跨年周留存計算
正常計算周留存,可以直接用weekofyear t1.dt weekofyear t2.dt 1 但是如果遇到跨年,按照一年52個周,新年又從1開始,導致跨年的周留存,計算不出來 每一周的開始日期和結束日期是相對固定的,可以先把日期固定到周,然後取各個周的開始日期,本週與下週的開始日期,固定的日期之...
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...