题解 | #SQL69 牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
http://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
首先提取出每个用户第一次登陆的日期:
SELECT user_id, MIN ( date ) FROM login GROUP BY user_id用case when的条件,在原有login表后面多加一列,如果 (user_id, date) 在上述的子查询中,则计1,否则0;
最后sum加和,即可得到每个日期下的新用户数量
SELECT DATE, SUM ( (CASE WHEN ( user_id, date ) IN ( SELECT user_id, MIN ( DATE ) FROM LOGIN GROUP BY user_id ) THEN 1 ELSE 0 END) ) AS NEW FROM LOGIN GROUP BY DATE;
