Articolo originale: https://www.freecodecamp.org/news/sql-count-how-to-select-sum-and-average-rows-in-sql/

In SQL, esistono due funzioni integrate per sommare o calcolare la media dei dati in una tabella.

In questo articolo ti mostrerò come usare le funzioni SUM e AVG in SQL usando degli esempi di codice.

Come usare la funzione SUM in SQL

Se devi aggiungere un gruppo di numeri a una tabella, puoi usare la funzione SUM in SQL.

Questa è la sintassi di base:

SELECT SUM(nome_colonna) FROM nome_tabella;

L'istruzione SELECT in SQL dice al computer di prendere i dati da una tabella.

La clausola FROM in SQL specifica da quale tabella vuoi prendere i dati.

In questo esempio, abbiamo una tabella chiamata studenti con le colonne id, nome, data e totale. Vogliamo aggiungere il numero totale di caramelle vendute da tutti gli studenti.

Screen-Shot-2021-09-29-at-5.42.26-AM

Possiamo usare questa sintassi per ottenere il numero totale di barrette vendute:

SELECT SUM(totale) FROM studenti;

Il risultato sarà 41.

Screen-Shot-2021-09-29-at-5.44.54-AM

Possiamo anche ottenere la somma per ogni studente usando la clausola GROUP BY.

La prima parte è per selezionare il nome e sommare  il numero totale di caramelle vendute, così:

SELECT nome, SUM(totale)

La seconda parte è per raggruppare la somma rispetto al nome:

FROM studenti GROUP BY nome;

Ecco il codice completo per raggruppare il numero totale di caramelle vendute da ogni studente.

SELECT nome, SUM(totale) FROM studenti GROUP BY nome;

Ecco come apparirà il risultato:

Screen-Shot-2021-09-29-at-5.54.14-AM

Al momento i risultati sono raggruppati alfabeticamente in base al nome dello studente.

Possiamo modificare il codice per ordinare la lista di risultati dal più grande al più piccolo usando la clausola ORDER BY.

SELECT nome, SUM(totale) FROM studenti GROUP BY nome ORDER BY totale DESC;

La parola chiave DESC dice al computer di ordinare il totale dal più grande al più piccolo.

Screen-Shot-2021-09-29-at-6.05.02-AM

Se vogliamo ordinare il totale dal più piccolo al più grande, basta omettere la parola chiave DESC.

SELECT nome, SUM(totale) FROM studenti GROUP BY nome ORDER BY totale;
Screen-Shot-2021-09-29-at-6.07.10-AM

Come usare la funzione AVG in SQL

La funzione AVG trova la media aritmetica per un gruppo di entrate in una tabella SQL. La media è la somma di un insieme di numeri divisa per il numero di elementi sommati.

Ad esempio, 2+4+4+6+6+8 fa 30, diviso 6 restituisce una media di 5.

Questa è la sintassi di base della funzione AVG:

SELECT AVG(nome_colonna) FROM nome_tabella;
   

In questo esempio, abbiamo una tabella chiamata studenti, con le colonne id , nome, data e voti. Vogliamo trovare la media dei voti di tutti gli studenti nella tabella.

Screen-Shot-2021-09-29-at-4.10.47-AM

Dobbiamo usare questa sintassi per ottenere la media dei voti:

SELECT AVG(voti) FROM studenti; 

La media è 85.333.

Screen-Shot-2021-09-29-at-4.21.21-AM

Possiamo anche usare la funzione ROUND per arrotondare il risultato all'intero più vicino.

SELECT ROUND(AVG(voti)) FROM studenti; 
Screen-Shot-2021-09-29-at-4.32.05-AM

Possiamo ottenere anche la media di ogni studente usando la clausola GROUP BY.

La prima parte è per selezionare il nome e la media dei voti, in questo modo:

SELECT nome, ROUND(AVG(voti))

La seconda parte è per raggruppare le medie in base al nome:

FROM studenti GROUP BY nome;

Ecco il codice completo:

SELECT nome, ROUND(AVG(voti)) FROM studenti GROUP BY nome;

E questo sarà il risultato finale:

Screen-Shot-2021-09-29-at-5.17.28-AM

Conclusione

A volte potresti aver bisogno di trovare la somma o la media delle entrate di una tabella.

Se devi aggiungere un gruppo di numeri a una tabella in SQL puoi usare la funzione SUM.

Questa è la sintassi di base:

SELECT SUM(nome_colonna) FROM nome_tabella;

Se devi disporre i dati in gruppi, puoi usare la clausola GROUP BY.

La funzione AVG trova la media aritmetica di un gruppo di entrate di una tabella SQL. La media è la somma di un insieme di numeri divisa per il numero di elementi sommati.

Questa è la sintassi di base:

SELECT AVG(nome_colonna) FROM nome_tabella;

Spero che questo tutorial ti sia piaciuto e buona fortuna con il tuo viaggio in SQL.