Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL GROUP BY intelligent pour les flux d'activité

Quelques observations sur les résultats souhaités :

Certains des articles sont agrégés (Jack Sprat comptait sept vendeurs) et d'autres sont détaillés (Lord Nelson a affrété le Golden Hind). Vous devez probablement avoir un UNION dans votre requête qui rassemble ces deux classes d'éléments à partir de deux sous-requêtes distinctes.

Vous utilisez une fonction de proximité d'horodatage assez grossière pour regrouper vos éléments ... DATE() . Vous voudrez peut-être utiliser un schéma plus sophistiqué et modifiable... comme celui-ci, peut-être

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

Cela vous permettra de regrouper les choses par tranches d'âge. Par exemple, si vous utilisez 48 pour hourchunk vous regrouperez les éléments datant de 0 à 48 heures. Au fur et à mesure que vous ajoutez du trafic et de l'action à votre système, vous souhaiterez peut-être réduire le hourchunk valeur.