MariaDB
 sql >> Database >  >> RDS >> MariaDB

SUM() Funzione in MariaDB

In MariaDB, il SUM() la funzione di aggregazione restituisce la somma di una determinata espressione.

Può anche essere utilizzato per restituire la somma di tutti i valori distinti (unici) in un'espressione.

Sintassi

La sintassi è questa:

SUM([DISTINCT] expr)

Dati di esempio

Supponiamo di avere una tabella chiamata Products con i seguenti dati:

SELECT
    VendorId,
    ProductName,
    ProductPrice
FROM Products;

Risultato:

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

Esempio

Possiamo utilizzare la seguente query per ottenere la somma di tutti i prezzi.

SELECT SUM(ProductPrice)
FROM Products;

Risultato:

423.19

Qui, le informazioni sui prezzi sono memorizzate nel ProductPrice colonna, e quindi lo passiamo come argomento a SUM() funzione, che quindi calcola la somma e restituisce il risultato.

Risultati filtrati

Il SUM() La funzione opera sulle righe restituite dalla query. Quindi, se filtri i risultati, il risultato di SUM() lo rifletterà.

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

Risultato:

78.72

In questo caso, 78,72 è la somma di tutti i prodotti offerti dal venditore specificato.

Il DISTINCT Parola chiave

Puoi usare il DISTINCT parola chiave con SUM() calcolare solo valori distinti. Cioè, se sono presenti valori duplicati, vengono trattati come un valore.

Esempio:

SELECT SUM(DISTINCT ProductPrice)
FROM Products;

Risultato:

397.20

La nostra tabella contiene due articoli con lo stesso prezzo (il cacciavite sinistro e il cacciavite destro hanno entrambi un prezzo di 25,99). Il DISTINCT la parola chiave fa sì che entrambi i valori vengano trattati come uno.

Funzioni della finestra

Possiamo usare un OVER clausola con SUM() funzione per creare una funzione finestra. Vedi SQL SUM() per i principianti per un esempio.