sql >> Database teknologi >  >> RDS >> Sqlserver

SUM() Funktion i SQL Server

I SQL Server 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 udtrykket.

SUM() virker kun på numeriske kolonner. Nulværdier ignoreres.

Syntaks

Syntaksen ser sådan ud:

SUM ( [ ALL | DISTINCT ] expression ) 

Den kan også bruges med en OVER klausul:

SUM ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)

Eksempel

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       | Long Weight (blue)              | 14.75          |
| 1001       | Long Weight (green)             | 11.99          |
| 1002       | Sledge Hammer                   | 33.49          |
| 1003       | Chainsaw                        | 245.00         |
| 1003       | Straw Dog Box                   | NULL           |
| 1004       | Bottomless Coffee Mugs (4 Pack) | 9.99           |
| 1001       | Right handed screwdriver        | 25.99          |
+------------+---------------------------------+----------------+

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

SELECT SUM(ProductPrice)
FROM Products;

Resultat:

367.20

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 null-værdier, når den udfører sin beregning.

Hvis kolonnen indeholder nulværdier, kan du muligvis se en advarsel, der indikerer, at nullværdier blev elimineret.

For eksempel, her er advarslen, jeg fik, da jeg kørte ovenstående eksempel:

SELECT SUM(ProductPrice)
FROM Products;

Resultat:

+--------------------+
| (No column name)   |
|--------------------|
| 367.20             |
+--------------------+
Warning: Null value is eliminated by an aggregate or other SET operation.

Filtrerede resultater

SUM() funktionen fungerer på de rækker, der returneres af forespørgslen. Så hvis du filtrerer resultaterne, er resultatet 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(ALL ProductPrice) AS "All",
    SUM(DISTINCT ProductPrice) AS "Distinct"
FROM Products;

Resultat:

+--------+------------+
| All    | Distinct   |
|--------+------------|
| 367.20 | 341.21     |
+--------+------------+
Warning: Null value is eliminated by an aggregate or other SET operation.

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

SUM() funktionen kan bruges med en OVER klausul for at oprette en vinduesfunktion. Se SQL SUM() for begyndere for eksempel.


  1. Sådan konverteres en postgres-database til sqlite

  2. Oprettelse af en Docker Swarm Cluster på Azure Container Service

  3. Brug for hjælp til beregning ved hjælp af to datasæt ved hjælp af Expression SSRS

  4. QPSQL driver ikke indlæst Qt