# SQL AVG() : calculer la valeur moyenne dans une colonne

La fonction SQL `AVG()` est utilisée pour calculer la moyenne des valeurs d’une colonne. Cette fonction peut être étendue et utilisée dans d’autres actions. Elle ignore les valeurs `NULL`.

## Qu’est-ce que SQL `AVG()` ?

La fonction SQL `AVG()` est utilisée dans le [Structured Query Language](https://www.ionos.fr/digitalguide/serveur/know-how/definition-de-sql/) pour indiquer la **moyenne ou la valeur moyenne** de valeurs dans une colonne spécifique. Pour effectuer cette requête, on utilise la [commande SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) `SELECT`. Cette fonction est particulièrement utile pour la création de bilans, d’analyses, de calculs de prix et dans bien d’autres domaines, car elle permet d’obtenir rapidement et simplement un aperçu fiable des valeurs moyennes. Il est toutefois important de noter que **les valeurs `NULL` ne sont pas prises en compte** par cette fonction et sont donc exclues du calcul.

## SQL `AVG()` : syntaxe et fonctionnement

La syntaxe de base de la fonction est très simple et ne comporte que peu de paramètres. Elle se présente comme suit :

```sql
SELECT AVG(nom_de_la_colonne)
FROM nom_de_la_table;
```

Pour calculer la valeur moyenne, vous pouvez utiliser la commande `SELECT` en combinaison avec la fonction `AVG()`. La clause `FROM` spécifie la table à prendre en compte.

Pour une utilisation plus précise de la fonction SQL `AVG()`, vous pouvez incorporer la clause `WHERE` qui permet de filtrer les données. Voici la syntaxe à utiliser :

```sql
SELECT AVG(nom_de_la_colonne)
FROM nom_de_la_table
WHERE condition;
```

Vous pouvez également lister plusieurs conditions préalables.

## SQL `AVG()` : exemples concrets

La meilleure façon de comprendre le fonctionnement de SQL `AVG()` est de l’utiliser pour une application concrète. Imaginons une table nommée « Clients ». Sur celle-ci, nous enregistrons les clients, le numéro de client, la ville, le nombre de produits achetés et le montant total en euros pour une période donnée. Voici à quoi ressemble cette table :

<table>
  <thead>
    <tr>
      <th><strong>Numéro de client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Article</strong></th>
      <th><strong>Montant</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Henri</td>
      <td>Paris</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Clément</td>
      <td>Marseille</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Petit</td>
      <td>Marseille</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Garcia</td>
      <td>Biarritz</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Simon</td>
      <td>Rouen</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Maintenant, vous pouvez par exemple déterminer à l’aide de la fonction combien ces clients vous ont payé en moyenne. La commande correspondante est la suivante :

```sql
SELECT AVG(Montant)
FROM Clients;
```

Le résultat ressemblerait alors à ceci :

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

Si vous souhaitez plutôt déterminer combien d’articles les clients ont commandés en moyenne, le principe est le même :

```sql
SELECT AVG(Article)
FROM Clients;
```

Le résultat est le suivant :

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

## La fonction SQL `AVG()` en combinaison avec `WHERE`

Comme nous l’avons déjà mentionné, vous pouvez ajouter une ou plusieurs conditions à la fonction afin d’obtenir des résultats encore plus spécifiques. Ici, nous calculons par exemple le chiffre d’affaires moyen de tous les clients de Marseille :

```sql
SELECT AVG(Montant)
FROM Clients
WHERE Ville = 'Marseille';
```

Nous obtenons ainsi le résultat suivant :

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

## La fonction SQL `AVG()` en combinaison avec d’autres paramètres

Vous avez également la possibilité de combiner la fonction avec d’autres paramètres. Dans l’exemple suivant, nous affichons ainsi tous les clients dont les dépenses sont supérieures à la moyenne. Le code correspondant se présente comme suit :

```sql
SELECT Numéro de client, Nom, Site, Article, Montant
FROM Clients
WHERE Montant > (SELECT AVG(Montant) FROM Clients);
```

Le résultat serait alors celui-ci :

<table>
  <thead>
    <tr>
      <th>Numéro de client</th>
      <th>Nom</th>
      <th>Ville</th>
      <th>Article</th>
      <th>Montant</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Henri</td>
      <td>Paris</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Petit</td>
      <td>Marseille</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Garcia</td>
      <td>Biarritz</td>
      <td>22</td>
      <td>912</td>
    </tr>
  </tbody>
</table>

## Autres fonctions similaires à SQL `AVG()`

Outre SQL `AVG()`, le langage connaît d’autres fonctions qui vous permettent de calculer facilement certaines valeurs. Si vous souhaitez par exemple déterminer la somme de toutes les valeurs numériques dans une colonne, **`SUM()`** est le bon choix. Si vous voulez déterminer combien de lignes remplissent une certaine condition, utilisez alors la fonction [`COUNT()`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-count/).

Conseil La meilleure solution pour votre base de données : avec le [serveur d’hébergement SQL](https://www.ionos.fr/cloud/hebergement-serveur-sql "Hébergement SQL pour les bases de données MSSQL, MySQL et MariaDB | IONOS") de IONOS, choisissez entre MSSQL, MySQL ou MariaDB et profitez de performances optimales. De plus, pas d’inquiétudes à voir : la solution est sûre et sécurisée !


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