avgResample 집계 함수 컴비네이터

avgResample 집계 함수 컴비네이터

Resample 컴비네이터를 count 집계 함수에 적용하면, 지정된 수(N)의 구간에서 특정 키 컬럼의 값을 셀 수 있어요.

출처: 문서

본문

예시 사용법

기본 예시

예시를 살펴볼게요. 직원의 name, age, wage를 담는 테이블을 만들고 일부 데이터를 삽입해요.

CREATE TABLE employee_data
(
    name String,
    age UInt8,
    wage Float32
)
ENGINE = MergeTree()
ORDER BY tuple()

INSERT INTO employee_data (name, age, wage) VALUES
    ('John', 16, 10.0),
    ('Alice', 30, 15.0),
    ('Mary', 35, 8.0),
    ('Evelyn', 48, 11.5),
    ('David', 62, 9.9),
    ('Brian', 60, 16.0);

나이가 [30,60)[60,75) 구간((는 배타, )는 포함)에 있는 사람들의 평균 임금을 구해 볼게요. 나이에 정수 표현을 쓰므로 [30, 59][60,74] 구간의 나이를 얻게 돼요. 이를 위해 avg 집계 함수에 Resample 컴비네이터를 적용해요.

WITH avg_wage AS
(
    SELECT avgResample(30, 75, 30)(wage, age) AS original_avg_wage
    FROM employee_data
)
SELECT
    arrayMap(x -> round(x, 3), original_avg_wage) AS avg_wage_rounded
FROM avg_wage;

┌─avg_wage_rounded─┐
│ [11.5,12.95]     │
└──────────────────┘

더 알아보기 (Learn more)