generate_series 테이블 함수
generate_series 테이블 함수 (generate_series)
START부터 STOP까지의 정수 시퀀스를 담은 테이블을 반환하는 함수예요. 별칭은 generateSeries입니다.
출처: 문서
본문
별칭: generateSeries
구문
START부터 STOP까지(포함)의 정수를 담은 단일 generate_series 컬럼(UInt64)을 갖는 테이블을 반환합니다:
generate_series(START, STOP)
START부터 STOP까지(포함)의 정수를 STEP 간격으로 담은 단일 generate_series 컬럼(UInt64)을 갖는 테이블을 반환합니다:
generate_series(START, STOP, STEP)
STEP은 음수일 수 있습니다. 이 경우 START부터 STOP까지 내림차순으로 시리즈가 생성됩니다. STEP이 음수이고 START < STOP이면 결과는 비어 있습니다.
예제
다음 쿼리들은 같은 내용이지만 다른 컬럼 이름을 가진 테이블을 반환합니다:
SELECT * FROM numbers(10, 5);
┌─number─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└────────┘
SELECT * FROM generate_series(10, 14);
┌─generate_series─┐
│ 10 │
│ 11 │
│ 12 │
│ 13 │
│ 14 │
└─────────────────┘
그리고 다음 쿼리들은 같은 내용이지만 다른 컬럼 이름을 가진 테이블을 반환합니다(단, 두 번째 옵션이 더 효율적입니다):
SELECT * FROM numbers(10, 11) WHERE number % 3 == (10 % 3);
┌─number─┐
│ 10 │
│ 13 │
│ 16 │
│ 19 │
└────────┘
SELECT * FROM generate_series(10, 20, 3);
┌─generate_series─┐
│ 10 │
│ 13 │
│ 16 │
│ 19 │
└─────────────────┘
내림차순 시리즈 생성하기:
SELECT * FROM generate_series(9, 0, -1);
┌─generate_series─┐
│ 9 │
│ 8 │
│ 7 │
│ 6 │
│ 5 │
│ 4 │
│ 3 │
│ 2 │
│ 1 │
│ 0 │
└─────────────────┘