Descripción
El combinador ForEach
puede aplicarse a la función de agregación sum para convertirla de una función de agregación
que opera sobre valores de fila en una función de agregación que opera sobre
columnas Array, aplicando la agregación a cada elemento del array en todas las filas.
Ejemplo de uso
Para este ejemplo, usaremos el conjunto de datos hits disponible en nuestro SQL Playground.
La tabla hits contiene una columna llamada isMobile de tipo UInt8 que puede ser
0 para escritorio o 1 para móvil:
SELECT EventTime, IsMobile FROM metrica.hits ORDER BY rand() LIMIT 10Usaremos la función sumForEach, un combinador de agregación, para analizar cómo
varía por hora del día el tráfico de escritorio frente al tráfico móvil. Haga clic en el botón de play
de abajo para ejecutar la consulta de forma interactiva:
SELECT
toHour(EventTime) AS hour_of_day,
-- Use sumForEach para contar las visitas de escritorio y móviles en una sola pasada
sumForEach([
IsMobile = 0, -- Visitas de escritorio (IsMobile = 0)
IsMobile = 1 -- Visitas móviles (IsMobile = 1)
]) AS device_counts
FROM metrica.hits
GROUP BY hour_of_day
ORDER BY hour_of_day;