# SQL AVG(): sintassi ed esempi di utilizzo della funzione

La funzione SQL AVG() è usata per determinare la media dei valori di una colonna. Può essere estesa e impiegata in altre azioni, ignorando i valori NULL.

## Cos’è SQL AVG()?

La funzione SQL AVG() è usata nello [Structured Query Language](https://www.ionos.it/digitalguide/server/know-how/che-cose-sql/) per determinare la **media** dei valori di una colonna. Per l’interrogazione si utilizza il [comando SQL](https://www.ionos.it/digitalguide/server/configurazione/comandi-sql/) SELECT. Questa funzione risulta quindi particolarmente preziosa soprattutto per creare bilanci, analisi, calcoli di prezzi e per molti altri campi, perché con il calcolo dei valori medi si ottiene una visione d’insieme chiara in modo semplice e rapido. Bisogna però tenere presente che i **valori NULL non vengono considerati dalla funzione**, risultando quindi esclusi dal calcolo.

## Sintassi e funzionamento

La sintassi di base della funzione, che è molto semplice e contiene solo pochi parametri, si presenta come segue:

```sql
SELECT AVG(nome_della_colonna)
FROM nome_della_tabella;
```

In questo caso avvii soltanto la generazione del valore medio con SELECT e la funzione. Con FROM specifichi la tabella da considerare.

Se vuoi usare la funzione SQL AVG() in modo ancora più preciso puoi ricorrere alla condizione WHERE. La sintassi è la seguente:

```sql
SELECT AVG(nome_della_colonna)
FROM nome_della_tabella
WHERE requisito;
```

Puoi anche elencare più requisiti.

## Esempi di funzionamento di SQL AVG()

Per comprendere al meglio come funziona SQL AVG() esaminiamo un’applicazione concreta. Prendiamo una tabella denominata “Lista clienti”. In questa tabella inseriamo tutti i clienti, il rispettivo numero cliente, la località, il numero dei prodotti acquistati e l’importo totale in euro per un determinato periodo. La tabella si presenta come segue:

<table>
  <thead>
    <tr>
      <th><strong>Numero cliente</strong></th>
      <th><strong>Nome</strong></th>
      <th><strong>Località</strong></th>
      <th><strong>Articoli</strong></th>
      <th><strong>Importo totale</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Russo</td>
      <td>Roma</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Rossi</td>
      <td>Milano</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Bianchi</td>
      <td>Milano</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Mancini</td>
      <td>Palermo</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Innocenti</td>
      <td>Firenze</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Ora con la funzione puoi determinare, ad esempio, quanto hanno pagato in media questi clienti. Il comando è il seguente:

```sql
SELECT AVG(importo totale)
FROM lista clienti;
```

Il risultato sarà:

<table>
  <thead>
    <tr>
      <th><strong>Importo totale</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>539,4</td>
    </tr>
  </tbody>
</table>

Se invece vuoi determinare quanti articoli hanno ordinato in media i clienti, il principio di funzionamento è analogo:

```sql
SELECT AVG(articoli)
FROM lista clienti;
```

Il risultato è:

<table>
  <thead>
    <tr>
      <th><strong>Articoli</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>14</td>
    </tr>
  </tbody>
</table>

## La funzione in combinazione con WHERE

Come già menzionato, la funzione può essere estesa con una o più condizioni per ottenere risultati ancora più specifici. Qui calcoliamo ad esempio il fatturato medio di tutti i clienti di Milano:

```sql
SELECT AVG(importo totale)
FROM lista clienti
WHERE località = 'Milano';
```

Otteniamo il risultato seguente:

<table>
  <thead>
    <tr>
      <th><strong>Importo totale</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>419,5</td>
    </tr>
  </tbody>
</table>

## Combinazione con altri parametri

È anche possibile combinare la funzione con altri parametri. Nell’esempio che segue visualizziamo quindi tutti i clienti con una spesa sopra la media. Il codice si presenta come segue:

```sql
SELECT numero cliente, nome, località, articoli, importo totale
FROM lista clienti
WHERE importo totale > (SELECT AVG(importo totale) FROM lista clienti);
```

Sarà quindi visualizzato:

<table>
  <thead>
    <tr>
      <th>Numero cliente</th>
      <th>Nome</th>
      <th>Località</th>
      <th>Articoli</th>
      <th>Importo totale</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Russo</td>
      <td>Roma</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Bianchi</td>
      <td>Milano</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Mancini</td>
      <td>Palermo</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

## Altre funzioni simili a SQL AVG()

Oltre a SQL AVG(), il linguaggio conosce altre funzioni con cui puoi calcolare facilmente determinati valori. Se ad esempio vuoi determinare la somma di tutti i valori numerici all’interno di una colonna, **SUM()** è la scelta giusta. Per rilevare quante righe soddisfano una determinata condizione, scegli la funzione [COUNT()](https://www.ionos.it/digitalguide/server/configurazione/sql-count/).

Consiglio La migliore soluzione per il tuo database: con l’[hosting SQL Server](https://www.ionos.it/cloud/sql-server-hosting "Hosting SQL Server di IONOS") di IONOS puoi scegliere tra MSSQL, MySQL o MariaDB e approfittare di una consulenza personalizzata, una solida architettura di sicurezza e una soluzione su misura per le tue esigenze!


This is a markdown version of: [https://www.ionos.it/digitalguide/server/configurazione/sql-avg/](https://www.ionos.it/digitalguide/server/configurazione/sql-avg/) for AI/LLM consumption.