题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#

某宝店铺连续2天及以上购物的用户及其对应的天数

https://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf

看了答案,大部分人都遗漏了一个关键点,是通一个客户是可以有连续2天和连续2天以上的不同情况,这种需要在做一次聚合筛选,才是最完整的步骤。
比如用户 a 1 2 3   56 号分别购物了,那么客户a满足条件的是连续购物2天和连续购物3天的情况同时存在。如果不在做一次聚合的话,那么用户a就出现两次。其实本身题目也有很大歧义性。
最完整的答案
select user_id,max(days_count) days_count
from
(select distinct user_id,count(*) days_count
from(
    select distinct user_id,sales_date,
dense_rank()over(partition by user_id order by sales_date) rk
from sales_tb
) t1
group by user_id,date_sub(sales_date,interval rk day)
having days_count >=2 ) t2
group by user_id
order by user_id;


全部评论
终于看到一个考虑全面的了
点赞 回复 分享
发布于 2022-09-19 10:20 北京

相关推荐

牛马人的牛马人生:一开始看成了网吧
点赞 评论 收藏
分享
11-13 14:37
门头沟学院 Java
点赞 评论 收藏
分享
12-24 20:44
武汉大学 Java
点赞 评论 收藏
分享
评论
20
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务