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

SUM() Funzione in MySQL

In MySQL, 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) [over_clause]

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

389.70

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.

Valori Nulli

Il SUM() la funzione ignora qualsiasi valore NULL. Nella nostra tabella di esempio sopra, la mazza ha un valore NULL nel suo ProductPrice colonna, ma è stata ignorata nel calcolo.

Risultati filtrati

Il SUM() La funzione opera sulle righe restituite dalla query. Quindi, se filtri i risultati, l'output 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:

363.71

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.