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 |