题解 | #统计活跃间隔对用户分级结果#

统计活跃间隔对用户分级结果

https://www.nowcoder.com/practice/6765b4a4f260455bae513a60b6eed0af

WITH total AS (
SELECT 
uid,
MAX(DATE(out_time)) AS dt,
DATE(MIN(in_time)) AS reg_date

FROM tb_user_log

GROUP BY uid)

SELECT
user_grade,
ROUND(COUNT(*)/(SELECT COUNT(DISTINCT uid) FROM tb_user_log), 2) AS radio

FROM(
    SELECT
    *,
    (SELECT DATE(MAX(in_time)) FROM tb_user_log) AS today,
    CASE WHEN DATEDIFF((SELECT today), dt) < 7 AND reg_date <> (SELECT today) AND DATEDIFF((SELECT today), reg_date) >= 7 THEN '忠实用户'
         WHEN DATEDIFF((SELECT today), reg_date) < 7 THEN '新晋用户'
         WHEN DATEDIFF((SELECT today), dt) >= 30 THEN '流失用户'
         ELSE '沉睡用户'
	      
    END AS user_grade

    FROM total) AS a 

GROUP BY user_grade

ORDER BY radio DESC

全部评论

相关推荐

野猪不是猪🐗:这种直接口头上答应,骗面试,面完了直接拉黑,相当于给自己攒面经了(
点赞 评论 收藏
分享
lingo12:1.最好加个业务项目,大部分面试官工作以后会更偏重业务 2.实习部分描述一般般,可能hr看到会觉得你产出不够不给你过简历 3.蓝桥杯这些大部分人都有的,不如不写,反而减分项。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务