설명
ForEach 조합자는 sum 집계 함수에 적용할 수 있으며, 행 값을 대상으로 작동하는 집계 함수를 배열 컬럼을 대상으로 작동하는 집계 함수로 바꿉니다. 즉, 여러 행에 걸쳐 배열의 각 요소별로 집계를 적용합니다.
예시 사용법
이 예시에서는 SQL playground에서 사용할 수 있는 hits 데이터셋을 사용합니다.
hits 테이블에는 isMobile이라는 UInt8 타입의 컬럼이 있으며,
데스크톱은 0, 모바일은 1로 표시됩니다:
SELECT EventTime, IsMobile FROM metrica.hits ORDER BY rand() LIMIT 10sumForEach 집계 조합자 함수를 사용해
하루 중 시간대에 따라 데스크톱 트래픽과 모바일 트래픽이 어떻게 달라지는지 분석합니다. 아래 실행 버튼을
클릭해 쿼리를 대화형으로 실행하십시오:
SELECT
toHour(EventTime) AS hour_of_day,
-- sumForEach를 사용하여 한 번에 데스크톱 방문과 모바일 방문을 집계합니다
sumForEach([
IsMobile = 0, -- 데스크톱 방문 (IsMobile = 0)
IsMobile = 1 -- 모바일 방문 (IsMobile = 1)
]) AS device_counts
FROM metrica.hits
GROUP BY hour_of_day
ORDER BY hour_of_day;