powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Длина интервала int4range
4 сообщений из 4, страница 1 из 1
Длина интервала int4range
    #38586892
huanito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть два поля типа int4range, нужно проверить, что длина их пересечения не превышает числа N. Пересечение находится без проблем оператором *, но как найти длину полученного интервала? Функции для этого нет, считать руками не хочется.

Спасибо.
...
Рейтинг: 0 / 0
Длина интервала int4range
    #38586900
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Длина интервала int4range
    #38586909
huanito
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBat,
спасибо, но это вычисление руками. целевой интервал есть пересечение двух других, то есть придется вычислять его дла раза. Не изящно.
...
Рейтинг: 0 / 0
Длина интервала int4range
    #38586928
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
huanito... придется вычислять его дла раза. Не изящно.
оберните в подзапрос, как обычно. или функцию создайте.

Код: sql
1.
2.
3.
with const as (select int4range(1, 10) as x, int4range(5, 15) as y)
    , intersection as (select x*y as xy from const)
select upper(xy) - lower(xy) as length from intersection;


Код: sql
1.
2.
3.
4.
create function measure(anyrange) returns anyelement language sql as
    $$ select upper($1) - lower($1) $$;
with const as (select int4range(1, 10) as x, int4range(5, 15) as y)
select measure(x*y) from const;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Длина интервала int4range
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]