牛客每天有很多人登录,请你统计一下牛客每个日期登录新用户个数,
有一个登录(login)记录表,简况如下:

第1行表示user_id为2的用户在2020-10-12使用了客户端id为1的设备登录了牛客网,因为是第1次登录,所以是新用户
。。。
第4行表示user_id为2的用户在2020-10-13使用了客户端id为2的设备登录了牛客网,因为是第2次登录,所以是老用户
。。
最后1行表示user_id为4的用户在2020-10-15使用了客户端id为1的设备登录了牛客网,因为是第2次登录,所以是老用户


请你写出一个sql语句查询每个日期登录新用户个数,并且查询结果按照日期升序排序,上面的例子查询结果如下:


查询结果表明:
2020-10-12,有3个新用户(user_id为2,3,1)登录
2020-10-13,没有新用户登录
2020-10-14,有1个新用户(user_id为4)登录
2020-10-15,没有新用户登录



解题:
如果用SELECT...FROM...WHERE(子查询),检测不通过。
因为有些日,没有新用户,所以返回结果跟题目要求不同。不能返回为0的日期。
因此需要用left join 以确保所有日期都显示。
SELECT l.date, COUNT(l1.user_id) AS new              --主表
FROM login AS l
LEFT JOIN (SELECT user_id, MIN(date) AS first_date   --过滤条件的表
      FROM login
      GROUP BY user_id) l1
ON l.user_id = l1.user_id 
AND l.date = l1.first_date
GROUP BY l.date;