题解 | #灵魂社交APP6月2日的T+1日留存#

灵魂社交APP6月2日的T+1日留存

http://www.nowcoder.com/practice/4fe8b31084094910b53165be26ba3fe4

重点1:date_sub函数的使用,日期做差 重点2:distinct关键字去重 重点3:窗口函数avg计算平均值 重点4:if句法如果判断条件为真/假则统计

SELECT 
    -- 3.计算次日留存用户数的平均数保留两位有效数字
    ROUND(AVG(IF(b.user_id IS NOT NULL, 1, 0)), 2) AS avg_ret
FROM
(
    SELECT 
    -- 1.计算当日去重用户数
        DISTINCT user_id, 
        login_date
    FROM 
        logintb 
    WHERE 
        login_date = '2021-6-2'
)a
LEFT JOIN
(
    -- 2.计算次日去重用户数
    SELECT 
        DISTINCT user_id, 
        DATE_SUB(login_date, INTERVAL 1 day) AS login_date
    FROM 
        logintb
)b
ON a.user_id = b.user_id AND a.login_date=b.login_date;
全部评论

相关推荐

今天 13:48
门头沟学院 C++
点赞 评论 收藏
分享
uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
下个早班:秒挂就是不缺人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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