Groupe SQL par mois

Groupe SQL par mois

Problème

Supposons que nous ayons un tableau contenant des informations sur les employés comme indiqué ci-dessous:

L'objectif est de commander les données ci-dessus en fonction du mois de démarrage. Ceci est décrit dans la colonne start_date.

Comment pouvons-nous aborder un tel problème?

Solution 1 - Groupe par colonne (extrait)

La première méthode que nous pouvons utiliser est la fonction extrait () dans SQL. Il nous permet d'extraire des pièces spécifiques à partir d'un objet de date.

Par conséquent, nous pouvons utiliser la fonction extrait () pour extraire le mois à la date et regrouper les données de la valeur résultante.

Un exemple de requête est comme indiqué:

SÉLECTIONNER
Max (start_date) max (start_date)
Des employés
Groupe par extrait (mois de start_date);

Ce qui précède devrait regrouper les données par les mois et retourner la date maximale dans chaque groupe de mois:

Solution 2 - Format de date

Vous pouvez également utiliser la fonction DATE_FORMAT pour regrouper les données d'ici le nom du mois. Un exemple est comme indiqué:

Sélectionnez Date_format ('Mois', start_date) comme start_month,
Compter (id) comme id
Des employés
Groupe par date_format ('mois', start_date);

Cela devrait regrouper les données en fonction des noms de mois et appliquer la fonction de nombre.

Merci d'avoir lu!!