deltaSumTimestamp

deltaSumTimestamp

연속된 행(row) 사이의 차이(delta)를 누적해서 더하는 집계 함수예요. 직전 행과의 차이가 음수면 그 차이는 무시하고 넘어갑니다.

출처: 문서

본문

도입 버전: v21.6.0

연속된 행 사이의 차이를 더합니다. 차이가 음수이면 무시합니다.

이 함수는 주로 시간 버킷에 맞춰 정렬된 타임스탬프로 데이터를 저장하는 머티리얼라이즈드 뷰를 위해 만들어졌어요. 예를 들어 toStartOfMinute 버킷처럼 말이죠. 이런 머티리얼라이즈드 뷰의 행들은 모두 동일한 타임스탬프를 갖기 때문에, 원래의(반올림하지 않은) 타임스탬프 값을 저장하지 않으면 올바른 순서로 머지(merge)하는 것이 불가능합니다. deltaSumTimestamp 함수는 내부적으로 본 값들의 원래 timestamp를 기억하고 있어서, 파츠(parts)를 머지할 때 함수의 값(상태)이 정확하게 계산됩니다.

정렬된 컬렉션 전체에 걸쳐 델타 합을 계산하려면 deltaSum 함수를 쓰면 충분해요.

구문 (Syntax)

deltaSumTimestamp(value, timestamp)

인자 (Arguments)

반환 값

timestamp 인자를 기준으로 정렬된 연속 값들 사이의 누적 차이를 반환합니다. (U)Int* 또는 Float* 또는 Date 또는 DateTime

예제

타임스탬프 정렬을 이용한 기본 사용

SELECT deltaSumTimestamp(value, timestamp)
FROM (SELECT number AS timestamp, [0, 4, 8, 3, 0, 0, 0, 1, 3, 5][number] AS value FROM numbers(1, 10))
┌─deltaSumTimestamp(value, timestamp)─┐
│                                  13 │
└─────────────────────────────────────┘

더 알아보기 (Learn more)