sql >> Database >  >> RDS >> Mysql

SUM() Functie in MySQL

In MySQL is de SUM() aggregatiefunctie retourneert de som van een bepaalde uitdrukking.

Het kan ook worden gebruikt om de som van alle afzonderlijke (unieke) waarden in een uitdrukking te retourneren.

Syntaxis

De syntaxis gaat als volgt:

SUM([DISTINCT] expr) [over_clause]

Voorbeeldgegevens

Stel dat we een tabel hebben met de naam Products met de volgende gegevens:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Resultaat:

+----------+---------------------------------+--------------+
| 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 |
+----------+---------------------------------+--------------+

Voorbeeld

We kunnen de volgende zoekopdracht gebruiken om de som van alle prijzen te krijgen.

SELECT SUM(ProductPrice)
FROM Products;

Resultaat:

389.70

Hier wordt prijsinformatie opgeslagen in de ProductPrice kolom, en dus geven we dat door als argument aan de SUM() functie, die vervolgens de som berekent en het resultaat retourneert.

Null-waarden

De SUM() functie negeert alle NULL-waarden. In onze voorbeeldtabel hierboven heeft de voorhamer een NULL-waarde in zijn ProductPrice kolom, maar dat werd genegeerd in de berekening.

Gefilterde resultaten

De SUM() functie werkt op de rijen die door de query worden geretourneerd. Dus als u de resultaten filtert, wordt de uitvoer van SUM() zal dat weerspiegelen.

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

Resultaat:

78.72

In dit geval is 78,72 de som van alle producten die door de opgegeven leverancier worden aangeboden.

De DISTINCT Zoekwoord

U kunt de DISTINCT . gebruiken zoekwoord met SUM() om alleen verschillende waarden te berekenen. Dat wil zeggen, als er dubbele waarden zijn, worden deze als één waarde behandeld.

Voorbeeld:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Resultaat:

363.71

Onze tabel bevat twee artikelen met dezelfde prijs (de linkshandige schroevendraaier en de rechtshandige schroevendraaier kosten beide 25,99). De DISTINCT trefwoord resulteert erin dat beide waarden als één worden behandeld.

Vensterfuncties

We kunnen een OVER . gebruiken clausule met de SUM() functie om een ​​vensterfunctie te creëren. Zie SQL SUM() voor beginners bijvoorbeeld.


  1. postgres db-bestanden - welk bestand vertegenwoordigt de specifieke tabel/index?

  2. Hoe duplicaten te verwijderen uit een door komma's gescheiden lijst op regex in Oracle, maar ik wil geen dubbele waarden?

  3. Django ConnectionAbortedError:[WinError 10053] Een tot stand gebrachte verbinding is afgebroken door de software op uw hostcomputer

  4. scope_identity vs ident_current