6.1 Elenco delle funzioni aggregate

Quando si utilizza il raggruppamento di righe in SQL con operator GROUP BY, è possibile utilizzare SELECTle funzioni nell'istruzione che operano sui dati raggruppati. Tali funzioni sono anche chiamate funzioni di aggregazione.

Ecco un elenco di quelli più popolari:

# Funzione Descrizione
1 CONTARE() Restituisce il numero di valori in un gruppo
2 SOMMA() Restituisce la somma dei valori in un gruppo
3 MASSIMO() Restituisce il valore massimo di un gruppo
4 MIN() Restituisce il valore minimo di un gruppo
5 MEDIO() Restituisce la media di un gruppo
6 BIT_AND() Esegue un AND bit per bit su tutti i valori del gruppo
7 BIT_OR() Esegue un OR bit per bit su tutti i valori del gruppo
8 BIT_XOR() Esegue un XOR bit per bit su tutti i valori del gruppo
9 GRUPPO_CONCAT() Concatena tutti i valori di gruppo in una stringa
Questo non è un elenco completo di funzioni aggregate, ma il resto è molto specifico e non credo che le utilizzerai nei prossimi anni 5. Se ne hai ancora bisogno, puoi sempre leggere la documentazione ufficiale per il tuo DBMS.

Ora diamo un'occhiata ad alcuni esempi con le nostre funzioni di aggregazione.

6.2 Analizzare le retribuzioni dei dipendenti

Calcoliamo alcune statistiche sui nostri dipendenti dalla tabella dei dipendenti .

Domanda uno: quanti dipendenti abbiamo?

Se vogliamo scoprire il numero di tutti i record nella tabella, allora possiamo usare la funzione aggregata per questo COUNT. La richiesta sarà simile a questa:

SELECT COUNT(*) FROM employee

E MySQL restituirà come risposta il numero 6. Abbiamo 6 dipendenti nel dipartimento, incluso un gatto. Va bene.

Domanda due: quanto paghiamo al mese a tutti i dipendenti?

Per rispondere a questa domanda, dobbiamo sommare gli stipendi di tutti i dipendenti. Per fare ciò, utilizziamo la funzione aggregataSUM()

La richiesta sarà simile a questa:

SELECT SUM(salary) FROM employee

Si noti che questa volta ci viene richiesto di specificare i valori di quale colonna stiamo riepilogando. Abbiamo specificato una colonna stipendio . Non possiamo semplicemente sommare tutti i campi in una tabella.

E MySQL restituirà come risposta il numero 461000. Abbiamo 6 dipendenti nel dipartimento e lo stipendio è di 461mila. Troppo.

E infine, la terza domanda: quali sono i nostri stipendi massimi e minimi nel dipartimento? Bene, calcoliamo lo stipendio medio. Per fare ciò, abbiamo bisogno delle funzioni MIN, MAXe AVG.

La query sarà un po' più complessa questa volta e sarà simile a questa:

SELECT MIN(salary), AVG(salary), MAX(salary)
FROM employee

Il risultato di questa query sarà:

MIN(stipendio) MEDIA (stipendio) MASSIMO(stipendio)
1000 76833.3333 200000

Il salario minimo nel nostro dipartimento è di $ 1.000, molto buono. Lo stipendio massimo è di 200mila, ma questo è il regista.

Ma lo stipendio medio è troppo alto, devi in ​​​​qualche modo ottimizzare i costi. Assumiamo un altro gatto e basta :)