다음을 통해 공유


OVER(Azure Stream Analytics)

각 행에 대해 OVER 절은 연결된 집계 또는 분석 함수가 적용되기 전에 행의 그룹화 여부를 결정합니다.

스칼라 함수가 허용되는 모든 위치에서 OVER 절을 사용할 수 있습니다. 예를 들어 SELECT, WHERE, JOIN 또는 GROUP BY 절에서 OVER 절을 사용할 수 있습니다.

OVER 절은 쿼리 입력에서 직접 행을 그룹화합니다. WHERE 절의 조건자, JOIN 절의 조인 조건 또는 GROUP BY 절의 그룹화 조건의 영향을 받지 않습니다.

현재 OVER 절에서 지원되는 집계 함수는 다음과 같습니다.

  • 합계
  • 평균
  • MIN
  • MAX

Syntax

OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])

<PARTITION BY clause> ::== PARTITION BY partition_key, ... [n]

<LIMIT DURATION clause> ::== LIMIT DURATION (unit, length)

<WHEN clause> ::== WHEN boolean_expression

인수

<PARTITION BY 절>

집계 또는 분석 함수에 대해 동일한 <partition_key> 있는 행만 고려되도록 지정합니다.

<LIMIT DURATION 절>

현재 행의 기록이 그룹에 포함되는 정도를 지정합니다. 지원되는 단위와 해당 약어에 대한 자세한 설명은 DATEDIFF를 참조하세요.

<WHEN 절>

그룹에 포함할 행의 부울 조건을 지정합니다.

일반적인 주의 사항

창 함수의 결과 집합에 OVER를 사용하여 집계 또는 분석 함수를 적용하면 예기치 않은 결과가 발생할 수 있습니다. 창 함수는 모든 창 작업이 창 끝에 이벤트를 출력하므로 이벤트의 타임스탬프를 변경합니다. 이벤트의 현재 타임스탬프는 system.timestamp()를 사용하여 액세스할 수 있습니다. 창 작업 후에는 원래 이벤트 시간 특성과 다릅니다.

예제

센서당 지난 5분 동안의 평균 온도를 계산합니다.

SELECT AVG(temperature) OVER (PARTITION BY id LIMIT DURATION (minute, 5))
FROM input

지난 1시간 동안 리소스가 비정상 상태인 경우 경고를 throw합니다.

SELECT 1 AS alert
FROM input
WHERE MAX(healthy) OVER (PARTITION BY id LIMIT DURATION (hour, 1)) = 0

참고 항목

분석 함수
집계 함수