sql >> Databasteknik >  >> RDS >> Mysql

Intelligent MySQL GROUP BY för aktivitetsströmmar

Några observationer om dina önskade resultat:

En del av föremålen är aggregerade (Jack Sprat har sju säljare) och andra är specificerade (Lord Nelson chartrade Golden Hind). Du behöver förmodligen ha en UNION i din fråga som drar samman dessa två klasser av objekt från två separata underfrågor.

Du använder en ganska grov tidsstämpel-närhetsfunktion för att gruppera dina objekt ... DATE() . Du kanske vill använda ett mer sofistikerat och tweakbart schema... som det här, kanske

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

Detta låter dig gruppera saker efter åldersbitar. Till exempel om du använder 48 för hourchunk du kommer att gruppera saker som är 0-48 timmar sedan tillsammans. När du lägger till trafik och åtgärder till ditt system kanske du vill minska hourchunk värde.



  1. MySQL Left Joins:Välj allt från en tabell, men bara matchande värde i den andra tabellen med kriterier

  2. Omarkerad kryssruta returnerar nullvärde

  3. Hur genererar jag ett slumpmässigt tidsintervall och lägger till det i en mysql datetime med php?

  4. Hur man skriver en ORDER BY-klausul med undantag med hjälp av SQL