В MariaDB, SUM() агрегатната функция връща сумата от даден израз.
Може също да се използва за връщане на сумата от всички различни (уникални) стойности в израз.
Синтаксис
Синтаксисът е така:
SUM([DISTINCT] expr) Примерни данни
Да предположим, че имаме таблица, наречена Products със следните данни:
SELECT
VendorId,
ProductName,
ProductPrice
FROM Products; Резултат:
+----------+---------------------------------+--------------+ | VendorId | ProductName | ProductPrice | +----------+---------------------------------+--------------+ | 1001 | Left handed screwdriver | 25.99 | | 1001 | Right handed screwdriver | 25.99 | | 1001 | Long Weight (blue) | 14.75 | | 1001 | Long Weight (green) | 11.99 | | 1002 | Sledge Hammer | 33.49 | | 1003 | Chainsaw | 245.00 | | 1003 | Straw Dog Box | 55.99 | | 1004 | Bottomless Coffee Mugs (4 Pack) | 9.99 | +----------+---------------------------------+--------------+
Пример
Можем да използваме следната заявка, за да получим сумата от всички цени.
SELECT SUM(ProductPrice)
FROM Products; Резултат:
423.19
Тук информацията за цената се съхранява в ProductPrice колона и затова предаваме това като аргумент на SUM() функция, която след това изчислява сумата и връща резултата.
Филтрирани резултати
SUM() функцията работи с редовете, върнати от заявката. Така че, ако филтрирате резултатите, резултатът от SUM() ще отрази това.
SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001; Резултат:
78.72
В този случай 78,72 е сумата от всички продукти, предлагани от посочения доставчик.
DISTINCT Ключова дума
Можете да използвате DISTINCT ключова дума с SUM() за изчисляване само на различни стойности. Тоест, ако има дублиращи се стойности, те се третират като една стойност.
Пример:
SELECT SUM(DISTINCT ProductPrice)
FROM Products; Резултат:
397.20
Нашата таблица съдържа два артикула с една и съща цена (отвертката за лява ръка и отвертката за дясна са на цена 25,99). DISTINCT ключова дума води до това, че и двете стойности се третират като една.
Функции на прозореца
Можем да използваме OVER клауза с SUM() функция за създаване на прозоречна функция. Вижте SQL SUM() за начинаещи за пример.