argMaxIf 집계 함수 컴비네이터

argMaxIf 집계 함수 컴비네이터

If 컴비네이터를 argMax 함수에 적용하면, 조건이 참인 행에서 val의 최대값에 해당하는 arg의 값을 찾을 수 있어요. argMaxIf 집계 컴비네이터 함수를 사용하는 거예요. argMaxIf 함수는 데이터셋에서 특정 조건을 만족하는 행에 대해서만 최대값과 연관된 값을 찾아야 할 때 유용해요.

출처: 문서

본문

예시 사용법

이 예시에서는 제품 판매 샘플 데이터셋을 사용해 argMaxIf가 어떻게 동작하는지 보여줄게요. 최소 10번 이상 팔린 제품 중에서 가격이 가장 높은 제품 이름을 찾아볼 거예요.

Query

CREATE TABLE product_sales
(
    product_name String,
    price Decimal32(2),
    sales_count UInt32
) ENGINE = Memory;

INSERT INTO product_sales VALUES
    ('Laptop', 999.99, 10),
    ('Phone', 499.99, 15),
    ('Tablet', 299.99, 0),
    ('Watch', 1199.99, 5),
    ('Headphones', 79.99, 20);

SELECT argMaxIf(product_name, price, sales_count >= 10) AS most_expensive_popular_product
FROM product_sales;

argMaxIf 함수는 최소 10번 이상 팔린(sales_count >= 10) 모든 제품 중에서 가격이 가장 높은 제품 이름을 반환해요. 이 경우 인기 있는 제품 중에서 가격이 가장 높은(999.99) 제품이므로 'Laptop'을 반환할 거예요.

Response

   ┌─most_expensi⋯lar_product─┐
1. │ Laptop                   │
   └──────────────────────────┘

더 알아보기 (Learn more)