PostgreSQL: считать от x до y - PullRequest
       1

PostgreSQL: считать от x до y

0 голосов
/ 24 декабря 2018

Как мне считать в PostgreSQL от X до Y, где X и Y берутся из полей таблицы.

Аналогично тому, как работает цикл for.

Я пытался использовать диапазоны.

1 Ответ

0 голосов
/ 24 декабря 2018

Использование generate_series:

demo: db <> fiddle

Не совсем ясно, как выглядят ваши данные:

A: У вас есть одна таблица с двумя столбцами x и y и ровно одна строка:

x | y
--+--
2 | 5

B: У вас есть одна таблица с двумя столбцами x и y и более одной строки:

x | y
--+--
2 | 5
3 |10 

Не совсем ясно, что вы имеете в виду под «счетом»:

I .: Вы хотите одну строку на элемент:

count
-----
2
3
4
5

II .: Вы хотитемассив всех элементов:

count
-----
{2,3,4,5}

AI: у вас есть таблица с двумя столбцами x и y с ровно одной строкой и требуется одна строка на элемент:

SELECT generate_series(x, y)
FROM values;

Результат, как показано в I. выше

BI: у вас много строк:

Тот же запрос, результатом является объединение сгенерированных строк:

count
-----
2
3
4
5
3
4
5
6
7
8
9
10

A.II: одна строка, требуется массив:

Вы должны сгруппировать сгенерированный ряд

SELECT array_agg(gs)
FROM (
    SELECT x, generate_series(x, y) as gs
    FROM values
) s
GROUP BY x

Результат какзамечено во II.

B.II: много строк, требуется массив:

тот же запросу, результат выглядит так:

count
------------------
{2,3,4,5}
{3,4,5,6,7,8,9,10}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...