题解 | #牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
https://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
select l1.disdate as date, if(lmin.new is null,0,lmin.new) as new from (select distinct date disdate from login) l1 left join (select mindate,count(*) as new from (select user_id,min(date) mindate from login group by user_id) l group by mindate) lmin on l1.disdate = lmin.mindate
这个sql整体看起来在后面leftjoin部分有点乱,总体思路是先找出按照mindate分组的用户数(即表lmin),对于没有数据的日期需要做一个连接将none值修改为0(即表l1)。
两者结合就是最后呈现的结果


查看7道真题和解析