기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
윈도 함수
창 함수는 쿼리 결과의 행에 걸쳐 계산을 수행합니다. HAVING 절 뒤에 실행되지만 ORDER BY 절 앞에 실행됩니다. 창 함수를 호출하려면 OVER 절을 사용하여 창을 지정하는 특수 구문이 필요합니다. 창은 세 가지 구성 요소로 구성됩니다.
-
입력 행을 다른 파티션으로 구분하는 파티션 사양입니다. 이는 GROUP BY 절이 집계 함수를 위해 행을 서로 다른 그룹으로 구분하는 방식과 유사합니다.
-
윈도우 함수에서 입력 행을 처리하는 순서를 결정하는 주문 사양입니다.
-
지정된 행의 함수에서 처리할 행의 슬라이딩 창을 지정하는 창 프레임입니다. 프레임이 지정되지 않은 경우 기본적으로 RANGE UNBOUNDED 로 설정되며PRECEDING, 이는 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT 와 동일합니다ROW. 이 프레임에는 파티션 시작부터 현재 행의 마지막 피어까지 모든 행이 포함됩니다.
OVER 절을 추가하여 모든 집계 함수를 창 함수로 사용할 수 있습니다. 집계 함수는 현재 행의 창 프레임 내에 있는 행의 각 행에 대해 계산됩니다. 집계 함수 외에도 용 Timestream은 다음 순위 및 값 함수를 LiveAnalytics 지원합니다.
함수 | 출력 데이터 유형 | 설명 |
---|---|---|
cume_dist() |
bigint |
값 그룹에 있는 값의 누적 분포를 반환합니다. 그 결과 창 파티션의 창 순서에 행이 있는 선행 또는 피어 행 수를 창 파티션의 총 행 수로 나눈 값이 됩니다. 따라서 순서의 모든 연결 값은 동일한 분포 값으로 평가됩니다. |
dense_rank() |
bigint |
값 그룹의 값 순위를 반환합니다. 이는 타이 값이 시퀀스에 공백을 생성하지 않는다는 점을 제외하면 rank()와 유사합니다. |
ntile(n) |
bigint |
각 윈도우 파티션의 행을 1~최대 n 범위의 버킷 n개로 나눕니다. 버킷 값은 최대 1까지 달라집니다. 파티션의 행 수가 버킷 수로 균등하게 분할되지 않으면 나머지 값은 첫 번째 버킷부터 버킷당 하나씩 분산됩니다. |
percent_rank() |
double |
값 그룹의 값의 백분율 순위를 반환합니다. 결과는 (r - 1) / (n - 1)입니다. 여기서 r은 행의 순위()이고 n은 창 파티션의 총 행 수입니다. |
순위() |
bigint |
값 그룹의 값 순위를 반환합니다. 순위는 행과 피어링되지 않은 행 앞에 행 수를 더한 1입니다. 따라서 순서에 값을 연결하면 시퀀스에 공백이 생성됩니다. 순위는 각 윈도우 파티션에 대해 수행됩니다. |
row_number() |
bigint |
창 파티션 내의 행 순서에 따라 각 행에 대해 하나씩 시작하는 고유한 순차적 번호를 반환합니다. |
first_value(x) |
[입력과 동일] |
창의 첫 번째 값을 반환합니다. 이 함수는 창 프레임으로 범위가 지정됩니다. 함수는 표현식 또는 대상을 파라미터로 사용합니다. |
last_value(x) |
[입력과 동일] |
창의 마지막 값을 반환합니다. 이 함수는 창 프레임으로 범위가 지정됩니다. 함수는 표현식 또는 대상을 파라미터로 사용합니다. |
nth_value(x, 오프셋) |
[입력과 동일] |
지정된 오프셋의 값을 창 시작부터 반환합니다. 오프셋은 1부터 시작합니다. 오프셋은 모든 스칼라 표현식일 수 있습니다. 오프셋이 null이거나 창의 값 수보다 큰 경우 null이 반환됩니다. 오프셋이 0 또는 음수인 경우 오류가 발생합니다. 함수는 표현식 또는 대상을 첫 번째 파라미터로 사용합니다. |
lead(x[, offset[, default_value]]) |
[입력과 동일] |
창의 현재 행 뒤에 있는 오프셋 행의 값을 반환합니다. 오프셋은 현재 행인 0에서 시작합니다. 오프셋은 모든 스칼라 표현식일 수 있습니다. 기본 오프셋은 1입니다. 오프셋이 null이거나 창보다 크면 default_value가 반환되고, 지정되지 않은 경우에는 null이 반환됩니다. 함수는 표현식 또는 대상을 첫 번째 파라미터로 사용합니다. |
lag(x[, offset[, default_value]]) |
[입력과 동일] |
오프셋 창의 현재 행 앞에 있는 오프셋 행의 값을 반환합니다. 오프셋은 현재 행인 0에서 시작됩니다. 오프셋은 모든 스칼라 표현식일 수 있습니다. 기본 오프셋은 1입니다. 오프셋이 null이거나 창보다 크면 default_value가 반환되고, 지정되지 않은 경우에는 null이 반환됩니다. 함수는 표현식 또는 대상을 첫 번째 파라미터로 사용합니다. |