Problem:
Sie möchten die Werte einer Spalte summieren.
Beispiel:
Unsere Datenbank hat eine Tabelle namens game
mit Daten in den folgenden Spalten:id
, player
, und score
.
id | Spieler | Ergebnis |
---|---|---|
1 | Johannes | 134 |
2 | Tom | 146 |
3 | Lucy | 20 |
4 | Tom | 118 |
5 | Tom | 102 |
6 | Lucy | 90 |
7 | Lucy | 34 |
8 | Johannes | 122 |
Lassen Sie uns die von allen Spielern erzielte Gesamtpunktzahl ermitteln.
Lösung:
SELECT SUM(score) as sum_score FROM game;
Hier ist das Ergebnis:
sum_score |
---|
766 |
Diskussion:
Die Aggregatfunktion SUM
ist ideal zum Berechnen der Summe der Werte einer Spalte. Diese Funktion wird in einem SELECT
verwendet -Anweisung und übernimmt den Namen der Spalte, deren Werte Sie summieren möchten.
Wenn Sie in SELECT
keine anderen Spalten angeben Anweisung, dann wird die Summe für alle Datensätze in der Tabelle berechnet. In unserem Beispiel wählen wir nur die Summe und keine anderen Spalten aus. Daher gibt die Abfrage in unserem Beispiel die Summe aller Punktzahlen (766) zurück.
Natürlich können wir auch die von jedem Spieler erzielte Gesamtpunktzahl berechnen, indem wir eine GROUP BY-Klausel verwenden und den Namen jedes Spielers neben der Summe aus der Tabelle auswählen:
Lösung:
SELECT player, SUM(score) as sum_score FROM game GROUP BY player;
Diese Abfrage gibt die Gesamtpunktzahl für jeden Spieler zurück:
Spieler | Ergebnis |
---|---|
Johannes | 256 |
Tom | 366 |
Lucy | 144 |