윈도우 함수 - Amazon Timestream

Amazon Timestream for LiveAnalytics와 유사한 기능을 원하는 경우 Amazon Timestream for InfluxDB를 고려해 보세요. 간소화된 데이터 수집과 실시간 분석을 위한 10밀리초 미만의 쿼리 응답 시간을 제공합니다. 여기에서 자세히 알아보세요.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

윈도우 함수

창 함수는 쿼리 결과의 행에서 계산을 수행합니다. HAVING 절 뒤에 실행되지만 ORDER BY 절 앞에 실행됩니다. 창 함수를 간접적으로 호출하려면 OVER 절을 사용하여 창을 지정하는 특수 구문이 필요합니다. 창은 세 가지 구성 요소로 구성됩니다.

  • 입력 행을 서로 다른 파티션으로 구분하는 파티션 사양입니다. 이는 GROUP BY 절이 집계 함수를 위해 행을 서로 다른 그룹으로 구분하는 방식과 유사합니다.

  • 윈도우 함수에서 입력 행을 처리할 순서를 결정하는 주문 사양입니다.

  • 지정된 행에 대해 함수가 처리할 행의 슬라이딩 창을 지정하는 창 프레임입니다. 프레임을 지정하지 않으면 기본적으로 RANGE UNBOUNDED PRECEDING으로 설정됩니다. 이는 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW와 동일합니다. 이 프레임에는 파티션 시작부터 현재 행의 마지막 피어까지 모든 행이 포함됩니다.

OVER 절을 추가하여 모든 집계 함수를 창 함수로 사용할 수 있습니다. 집계 함수는 현재 행의 창 프레임 내에 있는 행의 각 행에 대해 계산됩니다. Timestream for LiveAnalytics는 집계 함수 외에도 다음과 같은 순위 및 값 함수를 지원합니다.

함수 출력 데이터 유형 설명

cume_dist()

bigint

값 그룹에 있는 값의 누적 분포를 반환합니다. 그 결과 창 파티션의 창 순서에 있는 행을 창 파티션의 총 행 수로 나눈 선행 행 또는 피어 행의 수가 됩니다. 따라서 순서의 모든 타이 값은 동일한 분포 값으로 평가됩니다.

dense_rank()

bigint

값 그룹에 있는 값의 순위를 반환합니다. 이는 rank()와 비슷합니다. 단, 타이 값은 시퀀스에 공백을 생성하지 않습니다.

ntile(n)

bigint

각 창 파티션의 행을 1~최대 n 범위의 버킷 n개로 나눕니다. 버킷 값은 최대 1만큼 다릅니다. 파티션의 행 수가 버킷 수로 정확히 나누어지지 않을 경우 나머지 값은 첫 번째 버킷부터 시작하여 버킷당 하나씩 분배됩니다.

percent_rank()

double

값 그룹에서 값의 백분율 순위를 반환합니다. 결과는 (r - 1)/(n - 1)입니다. 여기서 r은 행의 rank()이고 n은 창 파티션의 총 행 수입니다.

rank()

bigint

값 그룹에 있는 값의 순위를 반환합니다. 순위는 1에 행과 피어링되지 않은 행 앞의 행 수를 더한 값입니다. 따라서 순서에 값을 묶으면 시퀀스에 갭이 발생합니다. 순위는 각 창 파티션에 대해 수행됩니다.

row_number()

bigint

창 파티션 내의 행 순서에 따라 각 행에 대해 하나씩 시작하는 고유한 순차 번호를 반환합니다.

first_value(x)

[입력과 동일]

창의 첫 번째 값을 반환합니다. 이 함수는 창 프레임으로 범위가 지정됩니다. 함수는 표현식 또는 대상을 파라미터로 사용합니다.

last_value(x)

[입력과 동일]

창의 마지막 값을 반환합니다. 이 함수는 창 프레임으로 범위가 지정됩니다. 함수는 표현식 또는 대상을 파라미터로 사용합니다.

nth_value(x, offset)

[입력과 동일]

창 시작부터 지정된 오프셋의 값을 반환합니다. 오프셋은 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이 반환됩니다. 함수는 표현식 또는 대상을 첫 번째 파라미터로 사용합니다.