SELECT uid, DATE_FORMAT(dt, '%Y%m') AS month, SUM(coin) AS coin FROM ( SELECT uid, dt, CASE WHEN rnk % 7 = 3 THEN 3 WHEN rnk % 7 = 0 THEN 7 ELSE 1 END AS coin FROM ( SELECT uid, dt, row_number() OVER(PARTITION BY uid, diff ORDER BY dt) AS rnk FROM ( SELECT uid, dt, -- 对齐连续签到分组逻辑(用dense_rank()生成全局rk)...