题解 | 计算用户的平均次日留存率 次日留存率

计算用户的平均次日留存率

https://www.nowcoder.com/practice/126083961ae0415fbde061d7ebbde453

select count(b.device_id)/count(1) as avg_ret
from 
    (
     select distinct device_id,`date`
     from question_practice_detail 
    )a
left join (select distinct device_id,`date`
           from question_practice_detail ) b on date_add(a.`date`,interval 1 day) = b.`date`
                                                 and a.device_id = b.device_id;

MySQL

DATE_ADD(dt, INTERVAL 1 DAY)

dt + INTERVAL 1 DAY

DATE_ADD(dt, INTERVAL -1 DAY)

dt - INTERVAL 1 DAY

Hive / Spark

DATE_ADD(dt, 1)

(注意:没有 INTERVAL 关键字,直接传数字)

DATE_SUB(dt, 1)

(Hive 有专门的 DATE_SUB 函数)

PostgreSQL

dt + INTERVAL '1 day'

dt - INTERVAL '1 day'

Oracle

dt + 1

(Oracle 可以直接数字加减,1代表1天)

dt - 1

SQL Server

DATEADD(DAY, 1, dt)

DATEADD(DAY, -1, dt)

牛客网题目 文章被收录于专栏

做题心得,记录下来,供自己学习

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务