Problem:
Du vil gerne summere værdierne af en kolonne.
Eksempel:
Vores database har en tabel ved navn game med data i følgende kolonner:id , player , og score .
| id | spiller | score |
|---|---|---|
| 1 | John | 134 |
| 2 | Tom | 146 |
| 3 | Lucy | 20 |
| 4 | Tom | 118 |
| 5 | Tom | 102 |
| 6 | Lucy | 90 |
| 7 | Lucy | 34 |
| 8 | John | 122 |
Lad os finde den samlede score opnået af alle spillere.
Løsning:
SELECT SUM(score) as sum_score FROM game;
Her er resultatet:
| sum_score |
|---|
| 766 |
Diskussion:
Den samlede funktion SUM er ideel til at beregne summen af en kolonnes værdier. Denne funktion bruges i en SELECT sætning og tager navnet på den kolonne, hvis værdier du vil summere.
Hvis du ikke angiver andre kolonner i SELECT opgørelse, så vil summen blive beregnet for alle poster i tabellen. I vores eksempel vælger vi kun summen og ingen andre kolonner. Derfor returnerer forespørgslen i vores eksempel summen af alle scores (766).
Selvfølgelig kan vi også beregne den samlede score, som hver spiller har optjent ved at bruge en GROUP BY-klausul og vælge hver spillers navn fra bordet sammen med summen:
Løsning:
SELECT player, SUM(score) as sum_score FROM game GROUP BY player;
Denne forespørgsel returnerer den samlede score for hver spiller:
| spiller | score |
|---|---|
| John | 256 |
| Tom | 366 |
| Lucy | 144 |