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 |