timeSeriesGroupArray

timeSeriesGroupArray

타임스탬프 기준으로 시계열 데이터를 오름차순 정렬해요.

출처: 문서

본문

timeSeriesGroupArray은 타임스탬프 기준으로 시계열 데이터를 오름차순 정렬하는 집계 함수예요. v25.8.0에 도입되었어요.

시계열 데이터를 타임스탬프 기준으로 오름차순 정렬해요. 샘플은 다음 세 가지 형태 중 하나로 전달할 수 있어요:

  • 두 개의 인자 timestampvalue 로 전달. 각 행은 단일 샘플을 담아요.
  • 타임스탬프와 값의 두 배열로 전달. 각 행은 전체 시계열을 담아요.
  • (timestamp, value) 튜플들의 단일 배열로 전달. 각 행은 전체 시계열을 담아요. 이 형태는 결과와 동일한 타입을 가지므로 SimpleAggregateFunction 데이터 타입에서 함수를 사용할 수 있게 해줘요.

여러 샘플이 같은 타임스탬프를 가지면 그중 하나만 사용돼요: 값이 가장 큰 샘플이에요. NaN 값은 다른 어떤 값에도 지므로, 해당 타임스탬프의 모든 샘플이 NaN일 때만 NaN이 사용돼요.

이 함수는 비공개 프리뷰(private preview) 상태라 enable_time_series_aggregate_functions=true 로 설정해야 해요.

구문 (Syntax)

timeSeriesGroupArray(timestamp, value)
timeSeriesGroupArray(samples)

인자 (Arguments)

  • timestamp — 샘플의 타임스탬프예요. 개별 값이거나 배열일 수 있어요. UInt32 또는 DateTime 또는 DateTime64 또는 Array(UInt32) 또는 Array(DateTime) 또는 Array(DateTime64) 타입이에요.
  • value — 타임스탬프에 대응하는 시계열 값이에요. 개별 값이거나 배열일 수 있어요. Float* 또는 Array(Float*) 타입이에요.
  • samples — 시계열의 샘플로, 튜플 (timestamp, value) 들의 배열로 전달돼요. 튜플 원소들은 위에 나열한 타임스탬프와 값 타입을 가져요. Array(Tuple(T1, T2)) 타입이에요.

반환 값 (Returned value)

타임스탬프 기준으로 오름차순 정렬된 튜플 (timestamp, value) 들의 배열을 반환해요.

  • Array(Tuple(T1, T2)) 타입이에요.

예시 (Examples)

개별 값을 사용한 기본 사용법

쿼리:

SET enable_time_series_aggregate_functions = 1;
WITH
    [110, 120, 130, 140, 140, 100]::Array(UInt32) AS timestamps,
    [1, 6, 8, 17, 19, 5]::Array(Float32) AS values
SELECT timeSeriesGroupArray(timestamp, value)
FROM
(
    SELECT
        arrayJoin(arrayZip(timestamps, values)) AS ts_and_val,
        ts_and_val.1 AS timestamp,
        ts_and_val.2 AS value
);

응답:

┌─timeSeriesGroupArray(timestamp, value)─────┐
│ [(100,5),(110,1),(120,6),(130,8),(140,19)] │
└────────────────────────────────────────────┘

같은 크기의 배열로 타임스탬프와 값의 여러 샘플을 전달하기

쿼리:

SET enable_time_series_aggregate_functions = 1;
WITH
    [110, 120, 130, 140, 140, 100]::Array(UInt32) AS timestamps,
    [1, 6, 8, 17, 19, 5]::Array(Float32) AS values
SELECT timeSeriesGroupArray(timestamps, values);

응답:

┌─timeSeriesGroupArray(timestamps, values)───┐
│ [(100,5),(110,1),(120,6),(130,8),(140,19)] │
└────────────────────────────────────────────┘

더 알아보기 (Learn more)