È possibile utilizzare query SQL di base per recuperare i dati da un database, ma spesso questo non fornisce un'intelligenza sufficiente per soddisfare i requisiti aziendali. SQL offre anche la possibilità di raggruppare i risultati delle query in base agli attributi a livello di riga al fine di applicare funzioni di aggregazione utilizzando la clausola GROUP BY. Si consideri, ad esempio, una tabella di dati degli ordini costituita dagli attributi seguenti:
- ID ordine - un valore numerico che identifica in modo univoco ciascun ordine. Questo campo è la chiave primaria per il database.
- Venditore - un valore di testo che fornisce il nome del venditore che ha venduto i prodotti. Questo campo è una chiave esterna di un'altra tabella contenente informazioni sul personale.
- Identificativo del cliente - un valore numerico corrispondente a un numero di conto cliente. Questo campo è anche una chiave esterna, che fa riferimento a una tabella contenente le informazioni sull'account del cliente.
- Reddito - un valore numerico corrispondente all'importo in dollari della vendita.
Quando arriva il momento di condurre revisioni delle prestazioni per i venditori, la tabella Ordini contiene preziose informazioni che possono essere utilizzate per quella recensione. Nel valutare Jim, potresti, ad esempio, scrivere una semplice query che recupera tutti i record di vendita di Jim:
SELEZIONA
Dagli ordini
DOVE Venditore come 'Jim'
Ciò recupera tutti i record dal database corrispondenti alle vendite effettuate da Jim: Vendite ID cliente ID cliente
12482 Jim 182 40000
12488 Jim 219 25000
12519 Jim 137 85000
12602 Jim 182 10000
12741 Jim 155 90000
È possibile rivedere queste informazioni ed eseguire alcuni calcoli manuali per ottenere statistiche sulle prestazioni, ma questo sarebbe un compito noioso che dovresti ripetere per ogni venditore in azienda. Invece, è possibile sostituire questo lavoro con una singola query GROUP BY che calcola le statistiche per ciascun commerciale della società. È sufficiente scrivere la query e specificare che il database deve raggruppare i risultati in base al campo Venditore. È quindi possibile utilizzare una qualsiasi delle funzioni di aggregazione SQL per eseguire calcoli sui risultati. Ecco un esempio. Se hai eseguito la seguente istruzione SQL: SELEZIONA Venditore, SUM (Fatturato) AS 'Totale', MIN (Fatturato) AS 'Più piccolo', MAX (Fatturato) AS 'Più grande', AVG (Fatturato) AS 'Media', COUNT (Ricavo) AS 'Numero'
Dagli ordini
GROUP BY Venditore
Otterresti i seguenti risultati: Numero medio della più piccola più grande totale del venditore
Jim 250000 10000 90000 50000 5
Mary 342000 24000 102000 57000 6
Bob 118000 4000 36000 39333 3
Come potete vedere, questa potente funzione consente di generare piccoli report all'interno di una query SQL, fornendo preziose informazioni di business al gestore che esegue le revisioni delle prestazioni. La clausola GROUP BY viene spesso utilizzata nei database per questo scopo ed è uno strumento prezioso nel bagaglio di trucchi del DBA.