Sommario: in questo tutorial, imparerete come utilizzare la funzione SQL SUM per calcolare la somma di tutti i valori o valori distinti.
Introduzione alla funzione SQL SUM
La funzioneSUM
restituisce la somma dei numeri., The syntax of the SUM()
function is as follows:
1
|
SUM( DISTINCT | ALL numeric_expression)
|
Unlike other SQL aggregate functions, the SUM()
function accepts only the expression that evaluates to numerical values.,
È possibile specificare il modificatore ALL
o DISTINCT
nella funzione SUM()
.
- Il modificatore
DISTINCT
indica alla funzioneSUM()
di calcolare il totale di valori distinti, il che significa che i duplicati vengono eliminati. - Il modificatore
ALL
consente alla funzioneSUM()
di restituire la somma di tutti i valori inclusi i duplicati., La funzioneSUM()
utilizza il modificatoreALL
per impostazione predefinita se non si specifica esplicitamente alcun modificatore.
SQL SUM function examples
Useremo la tabellaproducts
per i nostri esempi nelle sezioni seguenti.,in conjunction with a GROUP BY clause as the following query:
1
2
3
4
5
|
SELECT
supplierid, SUM(unitsinstock)
FROM
products
GROUP BY supplierid;
|
The GROUP BY
clause groups the products by suppliers., Per ogni gruppo, la funzione SUM() calcola la somma delle unità in magazzino.,div>
Se si utilizza un alias di colonna per l’espressione che contiene il SUM()
la funzione è possibile consultare l’alias HAVING
clausola anziché l’espressione., Ciò consente di risparmiare tempo digitando la stessa espressione due volte. Inoltre, quando cambi l’espressione, devi cambiarla in un solo posto.
La seguente query produce lo stesso risultato della query precedente.,v>
Advanced SQL SUM function examples
You can use the SUM function to answer more challenging business questions such as get top 5 customers by sales as the following query:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
SELECT
customers.,customerid,
nome azienda,
(SUM(unitprice * quantity) – SUM(unitprice * quantity) * discount) COME totale
DA
orderdetails
INNER JOIN
ordini SU ordini.orderid = orderdetails.orderid
INNER JOIN
clienti SUI clienti.customerid = ordini.customerid
GRUPPO PER clienti.customerid
ORDINA PER total DESC
LIMIT 5
|
Usiamo la clausola LIMIT per ottenere solo 5 righe dal set di risultati., Sia MySQL che PostgreSQL supportano la clausolaLIMIT
. In Microsoft SQL Server, è possibile utilizzare il SELECT TOP
come mostrato nella seguente query per ottenere lo stesso risultato:
1
2
3
4
5
6
7
8
9
10
11
12
|
SELECT TOP 5
clienti.,customerid,
nome azienda,
(SUM(unitprice * quantity) – SUM(unitprice * quantity) * discount) COME totale
DA
orderdetails
INNER JOIN
ordini SU ordini.orderid = orderdetails.orderid
INNER JOIN
clienti SUI clienti.customerid = ordini.customerid
GRUPPO PER clienti.,customerid
ORDINE totale DESC;
|
La seguente query utilizza il SUM()
funzione per ottenere i 5 prodotti più venduti:
1
2
3
4
5
6
7
8
9
10
11
|
SELEZIONA
p.idprodotto,
p.,productname,
(SOMMA(o.prezzo unitario * quantità) – SOMMA(o.prezzo unitario * quantità) * sconto) totale
DA
orderdetails o
INNER JOIN
prodotti p: p.productid = o.idprodotto
GROUP BY p.idprodotto
ORDINE totale DESC
LIMITE di 5;
|
In questo tutorial, vi abbiamo mostrato come utilizzare SQL SUM
funzione per calcolare la somma dei valori.
- Questo tutorial è stato utile ?,
- Sì