比如我们说月活,我们理所当然指的是,这个月内有过行为的用户,而不是指这个月内每天都要有行为的用户了。
user_id, active_date
0001 2022-11-11
0002 2022-11-12
你之所以迷惑就是有两个概念没定义好:
一个是第N日,一个是N日内。
第七日和七日内很明显覆盖的范围是不同的。
比如说,7日留存,是指7日内每一天都有行为,还是指七日内任何一天有活动都可以?
第7日留存和7日内留存是两个概念。
01日,用户进行了注册
如果02日,用户有过行为,则认为第02活跃
如果03日,有过行为,则认为第03活跃
sql语法:
case when的好处就是可以动态计算,分支逻辑
select xx,
case
when column =1 then ‘app’
when column = 2 or column =3 then ‘h5’
when column = 5 then ‘web’
else ‘unkonwn’
end
from table_name
row_number()语法:
ROW_NUMBER() OVER(partition by 分组列 order by 排序列)
顾名思义可以理解为返回一个行号
某种程度上来说他和group by有些相似性,但是group by之后数据会丢失,row_number可以分组,且行不会丢失