Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 Найти "пробелы" интервалов  [new]
про герр
Member

Откуда: С неба мля
Сообщений: 577
есть табличка со значениями начала и окончания периодов/интервалов,
при неразрывности, начало следующего интервала совпадает с концом предыдущего:


start end
0 10
10 20
20 30
-- пробел (30-40)
40 50
50 60
60 70
-- пробел (70-90)
90 100
100 110
110 120
-- пробел (120-150)
150 160
160 170
Нужно получить записи "вокруг" пробелов

20 30
40 50
60 70
90 100
110 120
150 160
Через LEFT OUTER JOIN
WITH "ends" AS 
(
SELECT * FROM "TestDirections"
)

SELECT 
"TestDirections"."start", 
"TestDirections"."end"
FROM "TestDirections"
LEFT OUTER JOIN "ends"
ON "TestDirections"."end" = "ends"."start"
WHERE "ends"."end" IS NULL

Выдает только "верхний" предел отсутствующего интервала.

20 30
60 70
110 120
160 170

Как добавить в результат еще и "нижний" предел"?

Сообщение было отредактировано: 2 апр 21, 13:27
2 апр 21, 13:35    [22303370]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить