Advertisement
arch239

Untitled

Mar 26th, 2024
715
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 0.58 KB | None | 0 0
  1. WITH NEXT AS (
  2.   SELECT
  3.         user_id,
  4.         START,
  5.         END,
  6.         COALESCE(DATETIME(LAG(END) OVER (partition BY user_id ORDER BY START), '15 days') < START, 0) AS step
  7.     FROM
  8.         t
  9. ),
  10.  
  11. num AS (
  12.   SELECT
  13.       user_id,
  14.       START,
  15.       END,
  16.       SUM(step) OVER (partition BY user_id ORDER BY START) + 1 AS sub_sequence_num
  17.   FROM
  18.       NEXT
  19. )
  20.  
  21. SELECT
  22.     user_id,
  23.     START,
  24.     END,
  25.     sub_sequence_num,
  26.     dense_rank() OVER (partition BY user_id, sub_sequence_num ORDER BY START) AS sub_num_in_seq
  27. FROM
  28.     num
  29. ORDER BY
  30.     user_id,
  31.     START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement