Groupe SQL par date

Groupe Sql Par Date



La clause SQL GROUP BY est un outil puissant pour regrouper et agréger les données. Il fournit un excellent moyen de regrouper les données en fonction de critères spécifiques, puis d'effectuer une action sur les groupes résultants.

Un cas d'utilisation courant de GROUP BY est le regroupement par dates. Dans ce didacticiel, nous allons apprendre les bases de l'utilisation de la clause GROUP BY et expliquer comment l'utiliser pour regrouper les données par dates dans SQL.







NOTE: Nous supposons que vous avez une compréhension de base de SQL. À des fins de démonstration, nous utilisons les exemples de ce didacticiel avec MySQL 8. Cependant, vous pouvez librement porter les concepts de ce didacticiel vers les autres moteurs de base de données basés sur SQL.



Exemple de tableau :

La première étape consiste à mettre en place un tableau de base et des exemples de données pour la démonstration. Si vous avez une table existante avec laquelle vous souhaitez travailler, n'hésitez pas à ignorer cette section.



Pour créer la table, utilisez la requête suivante :





Transactions CRÉER TABLE (
identifiant clé primaire int not null auto_increment,
date DATE,
montant DÉCIMAL ( dix , 2 )
) ;


Une fois que vous avez créé la table, insérez les exemples de données comme indiqué ci-dessous :

INSÉRER DANS les transactions ( date , montant )
VALEURS
( '2023-01-01' , 100,00 ) ,
( '2023-01-02' , 50,00 ) ,
( '2023-01-03' , 75,00 ) ,
( '2023-01-04' , 200,00 ) ,
( '2023-01-05' , 150,00 ) ,
( '2023-01-06' , 175,00 ) ,
( '2023-01-07' , 50,00 ) ,
( '2023-01-08' , 100,00 ) ,
( '2023-01-09' , 25.00 ) ,
( '2023-01-10' , 75,00 ) ,
( '2023-01-11' , 150,00 ) ,
( '2023-01-12' , 200,00 ) ,
( '2023-01-13' , 250,00 ) ,
( '2023-01-14' , 175,00 ) ,
( '2023-01-15' , 150,00 ) ,
( '2023-01-16' , 100,00 ) ,
( '2023-01-17' , 50,00 ) ,
( '2023-01-18' , 75,00 ) ;


Cela devrait ajouter les données aléatoires à la table des transactions. Nous pouvons utiliser l'instruction select pour afficher le tableau résultant comme suit :



sélectionner * des transactions ;


Tableau de sortie :


Une fois les données préparées, nous pouvons passer à l'étape suivante.

Groupe SQL par date

Comme vous pouvez le deviner, nous utilisons la clause GROUP BY pour partitionner les données d'une table donnée en fonction de valeurs spécifiques. La syntaxe des clauses est la suivante :

SELECT colonne1, colonne2, ...
FROM nom_table
GROUP BY colonne1, colonne2, ... ;


Dans la syntaxe précédente, nous utilisons la clause GROUP BY pour spécifier les colonnes par lesquelles vous souhaitez regrouper les données.

À partir du tableau précédent, nous pouvons utiliser la colonne de date pour regrouper les données comme indiqué dans la requête suivante :

SÉLECTIONNER date , SOMME ( montant ) comme montant total
DE transaction
PAR GROUPE date ;


La requête précédente effectue les calculs de base et ajoute le montant total pour chaque jour à l'aide de la fonction sum(). Nous regroupons ensuite les données en fonction des valeurs de date. Le tableau obtenu est le suivant :

Date de mise en forme

Parfois, nous pouvons avoir besoin de formater la date et de la rendre plus lisible. Un exemple est le suivant :

SÉLECTIONNER DATE_FORMAT ( date , '%m/%d/%Y' ) comme date_formatée, SOMME ( montant ) comme montant total
DE transaction
PAR GROUPE date ;


Cela devrait renvoyer les valeurs de date dans le format spécifié comme suit :

Plage de dates du filtre SQL

Nous pouvons également filtrer le jeu de résultats par une plage de dates à l'aide de la clause WHERE. Un exemple est le suivant :

SÉLECTIONNER DATE_FORMAT ( date , '%m/%d/%Y' ) comme date_formatée, SOMME ( montant ) comme montant total
DE transactions
date ENTRE '2023-01-01' ET '2023-01-15'
PAR GROUPE date ;


Le tableau résultant est présenté ci-dessous :


Voilà! Un moyen de regrouper les données d'une table donnée en fonction des valeurs de date.

Conclusion

Ce didacticiel a exploré les principes fondamentaux de l'utilisation de la clause GROUP BY dans SQL pour trier les données en fonction de valeurs spécifiques. Cela nous a permis de comprendre comment utiliser la clause GROUP BY pour diviser les données en fonction des valeurs de date.