Descrição
O combinador ForEach
pode ser aplicado à função de agregação sum para transformá-la de uma função de agregação
que opera sobre valores de linhas em uma função de agregação que opera sobre
colunas do tipo Array, aplicando a agregação a cada elemento do array ao longo das linhas.
Exemplo de uso
Para este exemplo, usaremos o conjunto de dados hits disponível em nosso playground SQL.
A tabela hits contém uma coluna chamada isMobile do tipo UInt8, que pode ser
0 para desktop ou 1 para dispositivos móveis:
SELECT EventTime, IsMobile FROM metrica.hits ORDER BY rand() LIMIT 10Usaremos a função de combinador de agregação sumForEach para analisar como
o tráfego em desktop versus dispositivos móveis varia ao longo das horas do dia. Clique no botão de play
abaixo para executar a consulta interativamente:
SELECT
toHour(EventTime) AS hour_of_day,
-- Use sumForEach para contar visitas em desktop e em dispositivos móveis em uma única passagem
sumForEach([
IsMobile = 0, -- Visitas em desktop (IsMobile = 0)
IsMobile = 1 -- Visitas em dispositivos móveis (IsMobile = 1)
]) AS device_counts
FROM metrica.hits
GROUP BY hour_of_day
ORDER BY hour_of_day;