Mysql
 sql >> база данни >  >> RDS >> Mysql

Функция SUM() в MySQL

В MySQL, SUM() агрегатната функция връща сумата от даден израз.

Може също да се използва за връщане на сумата от всички различни (уникални) стойности в израз.

Синтаксис

Синтаксисът е така:

SUM([DISTINCT] expr) [over_clause]

Примерни данни

Да предположим, че имаме таблица, наречена 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                   |         NULL |
|     1003 | Chainsaw                        |       245.00 |
|     1003 | Straw Dog Box                   |        55.99 |
|     1004 | Bottomless Coffee Mugs (4 Pack) |         9.99 |
+----------+---------------------------------+--------------+

Пример

Можем да използваме следната заявка, за да получим сумата от всички цени.

SELECT SUM(ProductPrice)
FROM Products;

Резултат:

389.70

Тук информацията за цената се съхранява в ProductPrice колона и затова предаваме това като аргумент на SUM() функция, която след това изчислява сумата и връща резултата.

Нулеви стойности

SUM() функцията игнорира всички NULL стойности. В нашата примерна таблица по-горе чукът има стойност NULL в своя ProductPrice колона, но това беше игнорирано при изчислението.

Филтрирани резултати

SUM() функцията работи с редовете, върнати от заявката. Така че, ако филтрирате резултатите, изходът на SUM() ще отрази това.

SELECT SUM(ProductPrice)
FROM Products
WHERE VendorId = 1001;

Резултат:

78.72

В този случай 78,72 е сумата от всички продукти, предлагани от посочения доставчик.

DISTINCT Ключова дума

Можете да използвате DISTINCT ключова дума с SUM() за изчисляване само на различни стойности. Тоест, ако има дублиращи се стойности, те се третират като една стойност.

Пример:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Резултат:

363.71

Нашата таблица съдържа два артикула с една и съща цена (отвертката за лява ръка и отвертката за дясна са на цена 25,99). DISTINCT ключова дума води до това, че и двете стойности се третират като една.

Функции на прозореца

Можем да използваме OVER клауза с SUM() функция за създаване на прозоречна функция. Вижте SQL SUM() за начинаещи за пример.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL подреждане по преди групиране по

  2. MySQL съхранена процедура срещу функция, коя бих използвал кога?

  3. Реализация на разстоянието на Левещайн за mysql/размито търсене?

  4. JSON_MERGE_PATCH() срещу JSON_MERGE_PRESERVE() в MySQL:Каква е разликата?

  5. Как да групирате по седмица в MySQL?