Проблем:
Искате да сумирате стойностите на колона.
Пример:
Нашата база данни има таблица с име game
с данни в следните колони:id
, player
и score
.
id | играч | резултат |
---|---|---|
1 | Джон | 134 |
2 | Том | 146 |
3 | Луси | 20 |
4 | Том | 118 |
5 | Том | 102 |
6 | Луси | 90 |
7 | Луси | 34 |
8 | Джон | 122 |
Нека намерим общия резултат, получен от всички играчи.
Решение:
SELECT SUM(score) as sum_score FROM game;
Ето резултата:
sm_score |
---|
766 |
Дискусия:
Агрегатната функция SUM
е идеален за изчисляване на сумата от стойностите на колона. Тази функция се използва в SELECT
оператор и приема името на колоната, чиито стойности искате да сумирате.
Ако не посочите други колони в SELECT
изявление, тогава сумата ще бъде изчислена за всички записи в таблицата. В нашия пример избираме само сумата и никакви други колони. Следователно, заявката в нашия пример връща сбора на всички резултати (766).
Разбира се, можем също да изчислим общия резултат, спечелен от всеки играч, като използваме клауза GROUP BY и избираме името на всеки играч от таблицата, заедно със сумата:
Решение:
SELECT player, SUM(score) as sum_score FROM game GROUP BY player;
Тази заявка връща общия резултат за всеки играч:
плейър | резултат |
---|---|
Джон | 256 |
Том | 366 |
Луси | 144 |