1、理解题意:统计连续2天及以上在该店铺购物的用户及其对应的次数
(1)对应次数的统计,要注意存在1位用户在1天之内多次购买记录,需要进行去重;
(2)连续2天及以上,可以利用row_number和date_sub结合处理,即当 “原date - 对应row_number的rank = 相同1值” 时,这种结果出现2次及以上,就符合 “连续2天及以上” 的要求。

2、实操:
(1)利用row_number对用户下单日期进行排序:
with k1
as
    (
    select user_id,sales_date,
    row_number() over(partition by user_id order by sales_date) as rank1

    from sales_tb
    )

结果展示:
1	1|2021-11-01|1		
2	2|2021-11-01|1		
3	2|2021-11-01|2		
4	3|2021-11-02|1		
5	4|2021-11-02|1		
6	5|2021-11-03|1		
7	6|2021-11-03|1		
8	7|2021-11-04|1		
9	8|2021-11-04|1		
10	9|2021-11-04|1		
11	10|2021-11-05|1		
12	10|2021-11-05|2		
13	10|2021-11-05|3		
14	10|2021-11-06|4		
15	11|2021-11-06|1		

(2)在排序之后,按照user进行分组统计,内部再按照《sales_date - 对应rank = 同1个数值》进行分类/分组统计,若“同1个数值” 的数量 >= 2个,那么就符合《连续2天及以上》的要求(having count(user_id) >= 2)
select user_id,
count(user_id) as days_count

from k1
group by user_id,date_sub(sales_date,interval rank1 day)

having count(user_id) >= 2