Problema:
Vorresti sommare i valori di una colonna.
Esempio:
Il nostro database ha una tabella chiamata game
con i dati nelle seguenti colonne:id
, player
e score
.
id | giocatore | punteggio |
---|---|---|
1 | Giovanni | 134 |
2 | Tom | 146 |
3 | Lucia | 20 |
4 | Tom | 118 |
5 | Tom | 102 |
6 | Lucia | 90 |
7 | Lucia | 34 |
8 | Giovanni | 122 |
Troviamo il punteggio totale ottenuto da tutti i giocatori.
Soluzione:
SELECT SUM(score) as sum_score FROM game;
Ecco il risultato:
sum_score |
---|
766 |
Discussione:
La funzione aggregata SUM
è ideale per calcolare la somma dei valori di una colonna. Questa funzione viene utilizzata in un SELECT
istruzione e prende il nome della colonna di cui vuoi sommare i valori.
Se non specifichi altre colonne in SELECT
istruzione, la somma verrà calcolata per tutti i record nella tabella. Nel nostro esempio, selezioniamo solo la somma e nessun'altra colonna. Pertanto, la query nel nostro esempio restituisce la somma di tutti i punteggi (766).
Naturalmente, possiamo anche calcolare il punteggio totale guadagnato da ciascun giocatore utilizzando una clausola GROUP BY e selezionando il nome di ciascun giocatore dalla tabella, insieme alla somma:
Soluzione:
SELECT player, SUM(score) as sum_score FROM game GROUP BY player;
Questa query restituisce il punteggio totale di ogni giocatore:
giocatore | punteggio |
---|---|
Giovanni | 256 |
Tom | 366 |
Lucia | 144 |