题解 | #牛客每个人最近的登录日期(三)#
牛客每个人最近的登录日期(三)
https://www.nowcoder.com/practice/16d41af206cd4066a06a3a0aa585ad3d
#注释:client_id无用 select /*此句报语法错误count(case when count(date)>=2 then 1 end)/count(distinct user_id) 1.case when count(date)>=2 then 1 end -------没问题 2.count(distinct user_id) -------没问题 3.count(case when count(date)>=2 then 1 end)-------报错 程序异常退出, 请检查代码"是否有数组越界等异常"或者"是否有语法错误" SQL_ERROR_INFO: 'Invalid use of group function' ???count里面不能再用count吗? */ round(Count(user_id)/Count(Distinct user_id)-1,3) #注释:Count(Distinct user_id 为第一天登录人数,记作A,Count(user_id)为第一天登陆人数A和第二天留存人数B总和,记作A+B,所要求的留存率P=B/A,所以[](A+B)/A]-1=B/A=P from login where (date, user_id) in (select date_add(min(date),interval 1 day), user_id from login group by user_id) #注释:筛选出隔日还有登录(错过:不应该用四则运算,日期格式有独有的加减格式)的ID,但是会漏选第一天有登录,第二天没登录的用户 or (date, user_id) in (select min(date), user_id from login group by user_id) #注释:筛选出第一天有登录的用户
多字段多条件筛选
未解决问题:count(case when count(date)>=2 then 1 end) 为何报错 Invalid use of group function,难道count里面一定不能嵌套count吗?
