표준 윈도우 함수
ClickHouse 전용 윈도 함수
다음과 같은 ClickHouse 전용 윈도 함수를 제공합니다:nonNegativeDerivative(metric_column, timestamp_column[, INTERVAL X UNITS])
timestamp_column을 기준으로 지정된 metric_column의 음수가 아닌 미분값을 계산합니다.
INTERVAL은 생략할 수 있으며, 기본값은 INTERVAL 1 SECOND입니다.
각 행에 대해 계산되는 값은 다음과 같습니다:
- 첫 번째 행:
0, - 번째 행: .
구문
PARTITION BY- 결과 집합을 어떻게 그룹으로 나눌지 정의합니다.ORDER BY- aggregate_function을 계산할 때 그룹 내 행의 순서를 정의합니다.ROWS or RANGE- 프레임의 경계를 정의하며, aggregate_function은 프레임 내에서 계산됩니다.WINDOW- 여러 표현식에서 동일한 윈도우 정의를 사용할 수 있도록 합니다.
함수
row_number()- 현재 행이 속한 파티션 내에서 1부터 시작하는 번호를 매깁니다.first_value(x)- 정렬된 프레임 내에서 평가된 첫 번째 값을 반환합니다.last_value(x)- 정렬된 프레임 내에서 평가된 마지막 값을 반환합니다.nth_value(x, offset)- 정렬된 프레임에서 n번째 행(offset)을 기준으로 평가된 첫 번째 non-NULL 값을 반환합니다.rank()- 현재 행이 속한 파티션 내에서 중간 순위를 건너뛰는 방식으로 순위를 매깁니다.dense_rank()- 현재 행이 속한 파티션 내에서 중간 순위를 건너뛰지 않는 방식으로 순위를 매깁니다.lagInFrame(x)- 정렬된 프레임 내에서 현재 행보다 지정한 물리적 오프셋만큼 앞에 있는 행에서 평가된 값을 반환합니다.leadInFrame(x)- 정렬된 프레임 내에서 현재 행보다 오프셋 행 수만큼 뒤에 있는 행에서 평가된 값을 반환합니다.
예시
행 번호 지정
집계 함수
컬럼별 파티셔닝
프레임 경계 설정
실제 사용 예시
부서별 최대/총 급여
누적합
이동 평균 / 슬라이딩 평균(3개 행 기준)
이동 평균 / 슬라이딩 평균(10초 기준)
이동 평균 / 슬라이딩 평균(10일 기준)
Range와 ORDER BY toDate(ts)를 사용하면 크기가 10인 프레임이 형성되며, toDate(ts)를 사용하므로 단위는 일입니다.