Advertisement
Guest User

Untitled

a guest
Apr 24th, 2023
38
0
13 hours
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. SELECT min(s) as s, max(e) as e, min(rno) as min_rno, max(rno) as max_rno
  2.   FROM (SELECT s, e, max(new_start) OVER (ORDER BY s,e) AS left_edge, ROW_NUMBER() OVER (ORDER BY s, e) as rno
  3.           FROM (SELECT s, e,
  4.                        CASE WHEN s < max(le) OVER (ORDER BY s,e) THEN null ELSE s END AS new_start
  5.                   FROM (SELECT s, e, lag(e) OVER (ORDER BY s,e) AS le FROM intervals) s1) s2) s3
  6.  GROUP BY left_edge ORDER BY s, e;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement