Database/SQL

[PostgreSQL] Set Returning Functions / Series Generating Functions (시리즈 생성 함수)

2023. 2. 17. 01:29

 

generate_series() 함수 를 이용하면 일련의 데이터셋을 만들 수 있다.


 

단계로 시작부터 끝까지 일련의 값을 생성한다.

* 단계 기본값은 1이다.

 

< 형식 >

generate_series ( start integer, stop integer [, step integer ] ) → setof integer
generate_series ( start bigint, stop bigint [, step bigint ] ) → setof bigint
generate_series ( start numeric, stop numeric [, step numeric ] ) → setof numeric

 

예시)

SELECT * FROM generate_series(2,10);

SELECT * FROM generate_series(2,10, 3);


 

일련의 날짜 데이터 생성

< 형식 >

generate_series ( start timestamp, stop timestamp, step interval ) → setof timestamp
generate_series ( start timestamp with time zone, stop timestamp with time zone, step interval ) → setof timestamp with time zone

 

예시)

SELECT current_date + s.a AS dates FROM generate_series(0,14,7) AS s(a);

 

· 시간(hr) 단위로 구간 데이터셋 생성하기

SELECT * FROM generate_series('2023-03-01 00:00'::timestamp,
                              '2023-03-04 12:00', '10 hours');

 

· 일(day) 단위로 구간 데이터셋 생성하기

SELECT * FROM generate_series('2023-03-01 00:00'::timestamp,
                              '2023-03-31 12:00', '2 days');

 

· 주(week) 단위로 구간 데이터셋 생성하기

SELECT * FROM generate_series('2023-03-01 00:00'::timestamp,
                              '2023-06-30 12:00', '2 weeks');

 


> 학습 내용 출처 : 

 

9.25. Set Returning Functions

9.25. Set Returning Functions This section describes functions that possibly return more than one row. The most widely used functions in …

www.postgresql.org

Table 9.64. Series Generating Functions