题解 | #牛客每个人最近的登录日期(四)#
牛客每个人最近的登录日期(四)
https://www.nowcoder.com/practice/e524dc7450234395aa21c75303a42b0a
-- 硬写完看了题解才发现我的方法好复杂
-- 不过这也是我一开始想的方法,算是给各位提供一下思路的吧
-- 第一层子查询是找出每个用户的首次登录时间
-- 第二层子查询是找出每个首次登录时间的人数
-- 最外层查询是右连接login表,然后使用coalesce函数将None值替换成0
-- ps:已经知道自己写的很复杂了。。
select distinct
t3.date,
COALESCE(t2.new, 0) as new
from
(
select distinct
login_date,
count(user_id) as new
from
(
select
user_id,
min(date) as login_date
from
login
group by
user_id
) as t1
group by
login_date
) as t2
right join login as t3 on t2.login_date = t3.date


