关注
第二种方法没过的,试试下面的方法,和楼主的第二种方法一样的思想,纯窗口函数: select dt,round(sum(if(timestampdiff(day,dt,lead_time)=1,1,0))/count(*),2) from( select *, row_number() over(partition by uid order by dt) rk, lead(dt,1) over(partition by uid order by dt) lead_time from( select uid,date(in_time) as dt from tb_user_log union select uid,date(out_time) as dt from tb_user_log )t1 )t2 where rk = 1 group by dt having date_format(dt,'%Y-%m') = '2021-11' order by dt 这里引用Cole4Youreyez用户的结论: “该题有一个易错点,那就是题目中第一句话就说明了在十一月份的,可能做题人会考虑在建立表t时就直接where语句选出11月的,这样是错误的。 原因在于:在建立表t是where会先运行,也就是选择了11月的信息再进行排序。那么如果一个用户10月活跃过,在11月中,11月2号和3号活跃了,这样的操作会使得该用户11-02的排名rk=1,也会被我们认为是新用户,但是显然并非如此。”
5
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
20789次浏览 346人参与
# 硬件人你反向读研了吗 #
40205次浏览 608人参与
# 京东TGT #
28596次浏览 151人参与
# 硬件人秋招的第一个offer #
65964次浏览 1081人参与
# 滴滴工作体验 #
23683次浏览 123人参与
# 非技术岗投递进展 #
137580次浏览 1222人参与
# 材料进Fab厂真的劝退吗? #
36457次浏览 158人参与
# 不考虑转正,实习多久合适 #
24526次浏览 118人参与
# 机械求职避坑tips #
41425次浏览 355人参与
# 互联网回暖,腾讯要招5000+人! #
263548次浏览 4889人参与
# 面试经验谈 #
13525次浏览 201人参与
# 机械只有转码才有出路吗? #
125904次浏览 1590人参与
# 职场新人生存指南 #
333301次浏览 7145人参与
# 面试吐槽bot #
2646次浏览 32人参与
# 异地恋该为对方跳槽吗 #
23972次浏览 119人参与
# 硬件人更看重稳定还是高薪 #
39121次浏览 203人参与
# vivo求职进展汇总 #
208624次浏览 1341人参与
# 25届如何提前做秋招准备? #
163959次浏览 2451人参与
# 你遇到过哪些神仙同事 #
69755次浏览 623人参与
# 租房找室友 #
28044次浏览 147人参与
# 深信服求职进展汇总 #
188906次浏览 1694人参与