카테고리:

데이터 생성 함수

SEQ1 / SEQ2 / SEQ4 / SEQ8

줄 바꿈과 함께 단조 증가하는 정수 시퀀스를 반환합니다. 줄 바꿈은 정수 너비(1, 2, 4 또는 8바이트) 중 표현 가능한 가장 큰 정수 다음에 발생합니다.

중요

이 함수는 시퀀스를 사용하여, 고유한 증가하는 정수 세트를 생성하지만, 반드시 갭이 없는 시퀀스를 생성하지는 않습니다. 많은 양의 데이터에 대해 작업할 때 갭이 순서대로 나타날 수 있습니다. 완전히 정렬된, 갭 없는 시퀀스가 필요한 경우, ROW_NUMBER 윈도우 함수 사용을 고려하십시오.

Snowflake의 시퀀스에 대한 자세한 내용은 시퀀스 사용하기 를 참조하십시오.

구문

SEQ1( [0|1] )

SEQ2( [0|1] )

SEQ4( [0|1] )

SEQ8( [0|1] )
Copy

사용법 노트

  • 선택적 부호 인자가 0인 경우, 시퀀스는 줄 바꿈 후 0에서 계속됩니다. 선택적 부호 인자가 1인 경우, 시퀀스는 주어진 정수 너비를 기반으로 표현 가능한 가장 작은 숫자에서 계속됩니다.

  • 기본 부호 인자는 0입니다.

다음은 시퀀스 사용의 기본 예입니다.

SELECT seq8() FROM table(generator(rowCount => 5));

+--------+
| SEQ8() |
|--------|
|      0 |
|      1 |
|      2 |
|      3 |
|      4 |
+--------+
Copy
SELECT * FROM (SELECT seq2(0), seq1(1) FROM table(generator(rowCount => 132))) ORDER BY seq2(0) LIMIT 7 OFFSET 125;

+---------+---------+
| SEQ2(0) | SEQ1(1) |
|---------+---------|
|     125 |     125 |
|     126 |     126 |
|     127 |     127 |
|     128 |    -128 |
|     129 |    -127 |
|     130 |    -126 |
|     131 |    -125 |
+---------+---------+
Copy

이 예는 ROW_NUMBER를 사용하여 갭 없는 시퀀스를 생성하는 방법을 보여줍니다.

SELECT ROW_NUMBER() OVER (ORDER BY seq4()) 
    FROM TABLE(generator(rowcount => 10));
+-------------------------------------+
| ROW_NUMBER() OVER (ORDER BY SEQ4()) |
|-------------------------------------|
|                                   1 |
|                                   2 |
|                                   3 |
|                                   4 |
|                                   5 |
|                                   6 |
|                                   7 |
|                                   8 |
|                                   9 |
|                                  10 |
+-------------------------------------+
Copy