WITH base AS(
SELECT user_id,
fdate - ROW_NUMBER() OVER (PARTITION BY user_id ORDER BY fdate) AS grp_key
FROM tb_dau
),
t AS (
SELECT user_id, count(grp_key)AS cnt
FROM base
GROUP BY user_id, grp_key
)
SELECT user_id, MAX(cnt) AS max_consec_days
FROM t
GROUP BY user_id;

京公网安备 11010502036488号