sql >> Database >  >> RDS >> MariaDB

SUM() Functie in MariaDB

In MariaDB, 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)

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                   |        33.49 |
|     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:

423.19

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.

Gefilterde resultaten

De SUM() functie werkt op de rijen die door de query worden geretourneerd. Dus als u de resultaten filtert, wordt het resultaat 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:

397.20

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. Wat is de database, waarom database?

  2. mysql controleren of getallen in een door komma's gescheiden lijst staan

  3. Hoe kan ik groeperen op datum tijdkolom zonder rekening te houden met tijd?

  4. Hoe het langzame query-logboek in MySQL in te schakelen?