SQL每日一题(20210709)
SQL每日一题(20220124)
SQL每日一题(20220727)
SELECT UID, MAX(cnt)
FROM (SELECT UID, COUNT(*) AS cnt
FROM (SELECT UID,
LOADTIME,DATEDIFF(LOADTIME, '2017-01-27') a,ROW_NUMBER() over (PARTITION BY UID ORDER BY UID, LOADTIME) b,
(DATEDIFF(LOADTIME, '2017-01-27') -
(ROW_NUMBER() over (PARTITION BY UID ORDER BY UID, LOADTIME))) AS t2
FROM T0330) AS m1
GROUP BY m1.UID, m1.t2) AS m2
GROUP BY m2.UID;
WITH recursive DIFF AS (SELECT UID, LOADTIME, 1 AS CONTINUITY
FROM T0330
UNION ALL
SELECT T.UID, T.LOADTIME, DF.CONTINUITY + 1
FROM T0330 AS T
JOIN DIFF AS DF ON DF.UID = T.UID AND timestampdiff(day, T.LOADTIME, DF.LOADTIME) = 1)
SELECT UID, MAX(CONTINUITY)
FROM DIFF GROUP BY UID