anyIf 집계 함수 컴비네이터

anyIf 집계 함수 컴비네이터

If 컴비네이터를 any 집계 함수에 적용하면, 주어진 조건과 일치하는 행에서 주어진 컬럼의 첫 번째로 만난 요소를 선택할 수 있어요.

출처: 문서

본문

예시 사용법

이 예시에서는 성공 플래그가 있는 판매 데이터를 저장하는 테이블을 만들고, anyIf로 금액이 200보다 크고 작은 첫 번째 transaction_id들을 선택할게요. 먼저 테이블을 만들고 데이터를 삽입해요.

Query

CREATE TABLE sales(
    transaction_id UInt32,
    amount Decimal(10,2),
    is_successful UInt8
)
ENGINE = MergeTree()
ORDER BY tuple();

INSERT INTO sales VALUES
    (1, 100.00, 1),
    (2, 150.00, 1),
    (3, 155.00, 0),
    (4, 300.00, 1),
    (5, 250.50, 0),
    (6, 175.25, 1);

SELECT
    anyIf(transaction_id, amount < 200) AS tid_lt_200,
    anyIf(transaction_id, amount > 200) AS tid_gt_200
FROM sales;

Response

┌─tid_lt_200─┬─tid_gt_200─┐
│          1 │          4 │
└────────────┴────────────┘

더 알아보기 (Learn more)