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 │
└──────────────────────────┘