Проблем:
Искате да сумирате стойностите на колона.
Пример:
Нашата база данни има таблица с име 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 |