본문 바로가기
Develops/SQL

[PostgreSQL] GENERATE_SERIES 사용 예시 (범위 안의 일련의 값 생성)

by SLOTH91 2024. 7. 21.
반응형

GENERATE_SERIES이란?

  • 일련의 값을 지정된 간격으로 생성해주는 함수입니다.
  • 값 사이의 간격과 단계는 사용자가 정의할 수 있습니다.

 

 

구문

  • start : tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정
  • stop : tinyint, smallint, int, bigint, 10진 또는 숫자 형식의 변수, 리터럴 또는 스칼라 식으로 지정
  • step : tinyint, smallint, int, bigint, 10진 또는 숫자 유형. step은 음수 또는 양수일 수 있지만 0(0)일 수는 없음
GENERATE_SERIES ( start , stop [ , step ] )

 

 

 

사용 예시

  • 1부터 10 사이의 정수 값 반환
-- ex 1
SELECT value
  FROM GENERATE_SERIES(1, 10);

-- ex 2
SELECT GENERATE_SERIES(1, 10) AS value
  FROM DUAL;

 

 

  • 2017년 1월 1일부터 2월 1일 사이의 1분 단위 모든 날짜 값 반환
SELECT TO_CHAR(GENERATE_SERIES('2017-01-01 00:00'::timestamp, '2017-02-01 00:00', '1 minutes'), 'yyyy-MM-dd HH24:MI') AS dt
  FROM DUAL;

 

 

  • 2017년 1월 1일부터 2월 1일 사이의 1일 단위 모든 날짜 값 반환
SELECT TO_CHAR(GENERATE_SERIES('2017-01-01 00:00'::timestamp, '2017-02-01 00:00', '1 days'), 'yyyy-MM-dd HH24:MI') AS dt
  FROM DUAL;

 

 

  • 2017년 1월 1일부터 2월 1일 사이의 1달 단위 모든 날짜 값 반환
SELECT TO_CHAR(GENERATE_SERIES('2017-01-01 00:00'::timestamp, '2017-02-01 00:00', '1 months'), 'yyyy-MM-dd HH24:MI') AS dt
  FROM DUAL;

 

 

 

 

참고

GENERATE_SERIES(Transact-SQL) - SQL Server (https://learn.microsoft.com/ko-kr/sql/t-sql/functions/generate-series-transact-sql?view=sql-server-ver16)

반응형