PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Funzione SUM() in PostgreSQL

In PostgreSQL, il SUM() La funzione calcola la somma dei valori di input non nulli e restituisce il risultato.

In altre parole, aggiunge numeri e restituisce il risultato.

Esempio

Ecco un rapido esempio per dimostrare come funziona:

SELECT SUM(amount) 
FROM payment;

Risultato:

67416.51

In questo caso, amount è una colonna nel payment tavolo.

Per dare un po' più di contesto, ecco un'istantanea della tabella:

+------------+-------------+----------+-----------+--------+----------------------------+
| payment_id | customer_id | staff_id | rental_id | amount |        payment_date        |
+------------+-------------+----------+-----------+--------+----------------------------+
|      16050 |         269 |        2 |         7 |   1.99 | 2017-01-24 21:40:19.996577 |
|      16051 |         269 |        1 |        98 |   0.99 | 2017-01-25 15:16:50.996577 |
|      16052 |         269 |        2 |       678 |   6.99 | 2017-01-28 21:44:14.996577 |
|      16053 |         269 |        2 |       703 |   0.99 | 2017-01-29 00:58:02.996577 |
|      16054 |         269 |        1 |       750 |   4.99 | 2017-01-29 08:10:06.996577 |
|      16055 |         269 |        2 |      1099 |   2.99 | 2017-01-31 12:23:14.996577 |
|      16056 |         270 |        1 |       193 |   1.99 | 2017-01-26 05:10:14.996577 |
|      16057 |         270 |        1 |      1040 |   4.99 | 2017-01-31 04:03:42.996577 |
|      16058 |         271 |        1 |      1096 |   8.99 | 2017-01-31 11:59:15.996577 |
...

Possiamo vedere l'amount colonna che abbiamo sommato nel nostro esempio.

La tabella contiene molti più dati, ma questo mostra un'istantanea dei valori che abbiamo sommato.

Risultati filtrati

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

Filtra i risultati:

SELECT SUM(amount) 
FROM payment
WHERE customer_id = 269;

Risultato:

129.70

Quindi questa volta abbiamo ottenuto la somma di tutti gli importi pagati dal cliente 269.

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(amount) AS "All",
    SUM(DISTINCT amount) AS "Distinct"
FROM payment;

Risultato:

+----------+----------+
|   All    | Distinct |
+----------+----------+
| 67416.51 |   116.75 |
+----------+----------+

Questo esempio confronta i risultati di DISTINCT possibilità di non ometterlo.

In questo caso, c'è una differenza molto grande, il che suggerisce che ci sono molti valori duplicati in quella colonna.

Per verificarlo, possiamo emettere i valori distinti come questo:

SELECT DISTINCT amount
FROM payment;

Risultato:

+--------+
| amount |
+--------+
|   1.99 |
|   3.98 |
|   7.99 |
|   5.99 |
|  10.99 |
|   2.99 |
|   8.97 |
|   8.99 |
|   3.99 |
|   9.98 |
|  11.99 |
|   7.98 |
|   6.99 |
|   0.00 |
|   4.99 |
|   5.98 |
|   0.99 |
|   1.98 |
|   9.99 |
+--------+
(19 rows)

Quindi il nostro esempio ha sommato tutti quei valori distinti.