Gruppo SQL per mese

Gruppo SQL per mese

Problema

Supponiamo di avere una tabella contenente le informazioni sui dipendenti come mostrato di seguito:

L'obiettivo è ordinare i dati sopra in base al mese di avvio. Questo è descritto nella colonna Start_Date.

Come possiamo affrontare un tale problema?

Soluzione 1 - Gruppo per colonna (estratto)

Il primo metodo che possiamo usare è la funzione Extract () in SQL. Ci consente di estrarre parti specifiche da un oggetto di data.

Pertanto, possiamo utilizzare la funzione Extract () per estrarre il mese la data e raggruppare i dati dal valore risultante.

Una query di esempio è come mostrato:

SELEZIONARE
Max (start_date) max (start_date)
Dai dipendenti
Gruppo per estratto (mese da start_date);

Quanto sopra dovrebbe raggruppare i dati entro i mesi e restituire la data massima in ogni mese del gruppo:

Soluzione 2 - Formato della data

È inoltre possibile utilizzare la funzione Date_Format per raggruppare i dati con il nome del mese. Un esempio è come mostrato:

Seleziona Date_Format ('Month', Start_Date) come start_month,
Contare (ID) come ID
Dai dipendenti
Gruppo di date_format ('mese', start_date);

Ciò dovrebbe raggruppare i dati in base ai nomi del mese e applicare la funzione di conteggio.

Grazie per aver letto!!