题解 | #某宝店铺连续2天及以上购物的用户及其对应的天数#
某宝店铺连续2天及以上购物的用户及其对应的天数
https://www.nowcoder.com/practice/63ac3be0e4b44cce8dd2619d2236c3bf
# 解法1 with t1 as ( select user_id, sales_date, sales_date - row_number()over(partition by user_id order by sales_date) as date_sub from sales_tb ) select user_id, count(date_sub) as days_count from t1 group by user_id,date_sub having count(sales_date) >= 2; # 解法2 SELECT user_id,COUNT(1) days_count FROM (SELECT DISTINCT sales_date,user_id,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 COUNT(1)>=2;
解法2是对的,需要考虑一个用户在第一天后的某一天内购买两次的问题。