PostgreSQL Generate Series Function: Generating Continuous Series Made Easy
PostgreSQL предоставляет функцию GENERATE_SERIES для создания серии последовательных чисел. Функция генерирует серию чисел от начального до конечного значения с шагом, заданным пользователем. Например, функция GENERATE_SERIES(1,5) создаст серию чисел от 1 до 5.
Пример использования функции GENERATE_SERIES:
SELECT * FROM GENERATE_SERIES(1,5);
Результат будет выглядеть следующим образом:
generate_series
-----------------
1
2
3
4
5
(5 rows)
Функция может использоваться вместе с другими запросами SELECT для создания более сложных выражений. Например, вы можете использовать функцию GENERATE_SERIES в сочетании с оператором CASE для создания условных выражений.
Пример:
SELECT
CASE
WHEN generate_series % 2 = 0 THEN 'Even'
ELSE 'Odd'
END
FROM generate_series(1, 5);
Результат:
case
--------------
Odd
Even
Odd
Even
Odd
(5 rows)
Вы также можете использовать функцию GENERATE_SERIES для создания диапазона дат. Например, вы можете создать серию дат за определенный период:
SELECT * FROM GENERATE_SERIES('2022-01-01'::date, '2022-01-10'::date, '1 day');
Результат будет выглядеть следующим образом:
generate_series
-------------------
2022-01-01 00:00:00
2022-01-02 00:00:00
2022-01-03 00:00:00
2022-01-04 00:00:00
2022-01-05 00:00:00
2022-01-06 00:00:00
2022-01-07 00:00:00
2022-01-08 00:00:00
2022-01-09 00:00:00
2022-01-10 00:00:00
(10 rows)
Эта функция может быть полезна при создании тестовых наборов данных, графиков и отчетов. Она значительно упрощает и ускоряет процесс создания больших диапазонов чисел и дат.