Skip to content

Instantly share code, notes, and snippets.

@farzadso
Forked from miguelmota/gaps.sql
Created December 4, 2021 17:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save farzadso/5dc88bfdd6e837d1b94aed66d54c3ead to your computer and use it in GitHub Desktop.
Save farzadso/5dc88bfdd6e837d1b94aed66d54c3ead to your computer and use it in GitHub Desktop.
PostgreSQL find gaps in sequence
-- table is 'blocks'
-- column is 'number'
SELECT
gap_start, gap_end FROM (
SELECT number + 1 AS gap_start,
next_nr - 1 AS gap_end
FROM (
SELECT number, lead(number) OVER (ORDER BY number) AS next_nr
FROM blocks
) nr
WHERE nr.number + 1 <> nr.next_nr
) AS g
UNION ALL (
SELECT
0 AS gap_start,
number AS gap_end
FROM
blocks
ORDER BY
number
ASC LIMIT 1
)
ORDER BY
gap_start
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment