sql >> Database teknologi >  >> RDS >> Mysql

SUM() Funktion i MySQL

I MySQL er SUM() aggregeret funktion returnerer summen af ​​et givet udtryk.

Det kan også bruges til at returnere summen af ​​alle distinkte (unikke) værdier i et udtryk.

Syntaks

Syntaksen ser sådan ud:

SUM([DISTINCT] expr) [over_clause]

Eksempel på data

Antag, at vi har en tabel kaldet Products med følgende data:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Resultat:

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

Eksempel

Vi kan bruge følgende forespørgsel til at få summen af ​​alle priser.

SELECT SUM(ProductPrice)
FROM Products;

Resultat:

389.70

Her er prisoplysninger gemt i ProductPrice kolonne, og så sender vi det som et argument til SUM() funktion, som så beregner summen og returnerer resultatet.

Nul-værdier

SUM() funktionen ignorerer alle NULL-værdier. I vores eksempeltabel ovenfor har forhammeren fået en NULL-værdi i sin ProductPrice kolonne, men det blev ignoreret i beregningen.

Filtrerede resultater

SUM() funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, outputtet af SUM() vil afspejle det.

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

Resultat:

78.72

I dette tilfælde er 78,72 summen af ​​alle de produkter, der tilbydes af den angivne leverandør.

DISTINCT Søgeord

Du kan bruge DISTINCT søgeord med SUM() kun at beregne distinkte værdier. Det vil sige, at hvis der er nogen duplikerede værdier, behandles de som én værdi.

Eksempel:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Resultat:

363.71

Vores tabel indeholder to varer med samme pris (venstrehåndsskruetrækker og højrehåndsskruetrækker er begge prissat til 25,99). DISTINCT søgeord resulterer i, at begge disse værdier behandles som én.

Vinduefunktioner

Vi kan bruge en OVER klausul med SUM() funktion til at oprette en vinduesfunktion. Se SQL SUM() for begyndere for eksempel.


  1. Parse JSON i TSQL

  2. Hvordan får man numeriske typer fra MySQL ved hjælp af PDO?

  3. Fremskynder rækkeoptællingen i MySQL

  4. Hvorfor ignorerer SQL Server den tomme plads i slutningen automatisk?