arch239

Untitled

Mar 26th, 2024
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 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
Add Comment
Please, Sign In to add comment