Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL intelligente GROUP BY per i flussi di attività

Alcune osservazioni sui risultati desiderati:

Alcuni degli articoli sono aggregati (Jack Sprat aveva sette venditori) e altri sono dettagliati (Lord Nelson ha noleggiato la Golden Hind). Probabilmente devi avere un'UNION nella tua query che raccolga queste due classi di elementi da due sottoquery separate.

Utilizzi una funzione di prossimità del timestamp piuttosto rozza per raggruppare i tuoi articoli ... DATE() . Potresti voler usare uno schema più sofisticato e modificabile... come questo, forse

  GROUP BY TIMESTAMPDIFF(HOUR,CURRENT_TIME(),stream_date) DIV hourchunk

Questo ti permetterà di raggruppare le cose in base all'età. Ad esempio, se usi 48 per hourchunk raggrupperai insieme cose che risalgono a 0-48 ore fa. Man mano che aggiungi traffico e azioni al tuo sistema, potresti voler ridurre il hourchunk valore.