题解 | #小破站9月新会员人数#

小破站9月新会员人数

http://www.nowcoder.com/practice/aaa8bf0381cf4f6ca53665cea37e405e

子查询去重出九月一号前的用户,使用a not in b的逻辑判断九月的新会员 解法1

重点1: count distinct统计 重点2: not in 子查询

SELECT 
    COUNT(DISTINCT user_id) AS new_cnt
FROM 
    detail_list_tb
WHERE 
    begin_date BETWEEN '2021-9-1' AND '2021-9-30'
	AND user_id NOT IN 
    (
		SELECT 
            DISTINCT user_id
		FROM 
            detail_list_tb
		WHERE 
            begin_date < '2021-9-1'
	);

解法2

重点1: 左连接 left join的使用 重点2: 子查询,中去重连接

SELECT
    COUNT(a.user_id)
FROM
(
    -- 九月的会员
    SELECT 
        DISTINCT user_id
    FROM 
        detail_list_tb
    WHERE 
        begin_date BETWEEN '2021-9-1' AND '2021-9-30'
) a
LEFT JOIN
(
    -- 旧会员
    SELECT 
        DISTINCT user_id
    FROM 
        detail_list_tb
    WHERE 
        begin_date < '2021-9-1'
) b
-- 九月的会员与旧会员相连,且九月的会员id不在旧会员记录中的即为新会员
ON a.user_id = b.user_id AND b.user_id IS NULL
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-04 15:20
牛客61197583...:看到室友一个个没怎么学通过关系直接入职或者接到面试,真的很难受。八股不知道背了多少遍,hot100也刷了1.5遍了,但就是没有面试的机会,唉
点赞 评论 收藏
分享
Southyeung:我说一下我的看法(有冒犯实属抱歉):(1)简历不太美观,给我一种看都不想看的感觉,感觉字体还是排版问题;(2)numpy就一个基础包,机器学习算法是什么鬼?我感觉你把svm那些写上去都要好一点。(2)课程不要写,没人看,换成获奖经历;(3)项目太少了,至少2-3个,是在不行把网上学习的也写上去。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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