MySQL : Grouper par premier jour de la semaine
Il peut parfois être plus utile et plus précis de grouper des données par semaine plutôt que par mois. Cela peut paraître plus compliqué car le numéro de semaine n’apparaît pas visuellement dans un champ de type date
(YYYY-MM-DD).
Pourtant, grâce aux fonctions MySQLDATE_ADD
, WEEKDAY
et INTERVAL
, nous pouvons facilement obtenir la date du premier jour de la semaine d’une date donnée, et ainsi, grouper des valeurs de manière hebdomadaire.
1 2 3 4 5 6 7 |
SELECT SUM(colonne_chiffre) AS group_total, DATE_ADD(colonne_date, INTERVAL(-WEEKDAY(colonne_date)) DAY) AS group_date FROM table WHERE 1 GROUP BY group_date ORDER BY group_date ASC |
Dans cet exemple, les données de la colonne colonne_chiffre
seront groupées par la date du lundi de la semaine de la date colonne_date