Agregação por bucket de tempo
toDate() aqui, que converte o horário especificado para um tipo de data. Como alternativa, podemos agrupar em intervalos de uma hora e filtrar pela data específica:
toStartOfHour() usada aqui converte o horário especificado para o início da hora.
Você também pode agrupar por ano, trimestre, mês ou dia.
Intervalos personalizados de agrupamento
toStartOfInterval().
Digamos que queremos agrupar em intervalos de 4 horas.
Podemos especificar o intervalo de agrupamento usando a cláusula INTERVAL:
toIntervalHour()
Preenchendo grupos vazios
WITH FILL para lidar com isso. Ele preencherá todas as horas sem dados com zeros, para que possamos entender melhor a distribuição ao longo do tempo:
Janelas de tempo móveis
date_diff() para calcular a diferença entre um horário de referência e o horário de cada registro.
Nesse caso, a coluna day representará a diferença em dias (por exemplo, 1 dia atrás, 2 dias atrás etc.):