SQL-5
21、给定用户表,求用户的次日留存率(京东)
参考答案
假设usrlogs用户表记录了用户的登陆日期,如下:
首先计算用户登陆的日期间隔,并写入临时表date_interval:
SELECT usr_id, A.log_date AS log_d, datediff(A.log_date, B.log_date) AS day_diff FROM usrlogs A LEFT JOIN usrlogs B ON A.usr_id = B.usr_id;
然后根据用户登陆的日期间隔筛选出留存的用户,从而计算出次日留存及次日留存率:
SELECT log_d , COUNT(DISTINCT CASE WHEN day_diff = 1 THEN usr_id ELSE NULL END) AS '次日
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
数据分析面试宝典 文章被收录于专栏
本面试宝典均来自校招面试题目大数据进行的整理
小天才公司福利 1152人发布