题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#
某宝店铺连续2天及以上购物的用户及其对应的天数
https://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf
select user_id,count(temp_date) as days_count from ( select user_id, row_number()over(partition by user_id order by sales_date asc) as rn, date_sub(sales_date,interval row_number()over(partition by user_id order by sales_date asc) day) as temp_date from sales_tb ) t1 group by user_id,temp_date having days_count>=2
先对整个日期列进行排序,然后 日期列-排序列=辅助日期列 ,如果用户连续登录的话,辅助日期列为相同的一个值,最后在count一下看每个用户相同的辅助日期有多少个,就是连续登录了几天