SELECT user_id,
MAX(sd)
FROM(
SELECT user_id,
# 使用用户id和开始连续登录的第一天的日期得出连续的次数
ROW_NUMBER() OVER(PARTITION BY user_id, sd ORDER BY sales_date) sd
FROM(
SELECT user_id,
sales_date,
# 先利用窗口函数算出开始连续登录的第一天的日期
DATE_SUB(sales_date, INTERVAL ROW_NUMBER()
OVER(PARTITION BY user_id ORDER BY sales_date) DAY) sd
FROM sales_tb
ORDER BY user_id, sales_date
)tempb
)tempc
WHERE sd >= 2
GROUP BY user_id

京公网安备 11010502036488号