Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Intelligentes MySQL GROUP BY für Activity Streams

Einige Beobachtungen zu Ihren gewünschten Ergebnissen:

Einige der Artikel sind aggregiert (Jack Sprat herzte sieben Verkäufer) und andere sind einzeln aufgeführt (Lord Nelson hat die Golden Hind gechartert). Sie müssen wahrscheinlich eine UNION in Ihrer Abfrage haben, die diese beiden Klassen von Elementen aus zwei separaten Unterabfragen zusammenführt.

Sie verwenden eine ziemlich grobe Zeitstempel-Nähe-Funktion, um Ihre Elemente zu gruppieren ... DATE() . Vielleicht möchten Sie ein ausgeklügelteres und anpassbareres Schema verwenden ... vielleicht so

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

Auf diese Weise können Sie Inhalte nach Altersgruppen gruppieren. Zum Beispiel, wenn Sie 48 für hourchunk verwenden Sie gruppieren Inhalte, die vor 0–48 Stunden liegen. Wenn Sie Ihrem System Traffic und Action hinzufügen, möchten Sie vielleicht den hourchunk verringern Wert.