# SQL COUNT() : compter les lignes d’une table

La fonction SQL `COUNT()` permet de compter le nombre de lignes dans une table. En utilisant la clause `WHERE`, vous pouvez préciser les critères de sélection des lignes à compter.

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

Il existe dans le [Structured Query Language](https://www.ionos.fr/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) (SQL) de nombreuses fonctions permettant d’effectuer des tâches mathématiques simples. Outre [SQL `AVG()`](https://www.ionos.fr/digitalguide/serveur/configuration/sql-avg/) et `SUM()`, SQL `COUNT()` est particulièrement utile. Cette fonction vous donne le **nombre de lignes qui correspondent à un certain critère**. Cela vous permet de filtrer votre tableau selon vos propres exigences et augmente ainsi la clarté. SQL `COUNT()` est utilisé avec la [commande SQL](https://www.ionos.fr/digitalguide/serveur/configuration/commandes-sql/) `SELECT`. Grâce à différents paramètres optionnels, vous pouvez instruire la fonction de manière encore plus précise. Nous vous montrons quelques exemples possibles dans ce qui suit.

## Syntaxe de la fonction SQL `COUNT()`

Dans sa forme la plus simple, elle ne comporte que deux lignes et ressemble à ceci :

```sql
SELECT COUNT(*)
FROM table;
```

Cependant, il est souvent utile d’inclure une condition `WHERE` pour spécifier la sortie. Dans ce cas, la fonction sera un peu plus longue :

```sql
SELECT COUNT(*)
FROM table
WHERE condition;
```

## Exemple de fonctionnement

Pour illustrer les possibilités offertes par SQL `COUNT()`, nous allons créer un exemple de table appelée `Liste de clients`. Celle-ci comprend des informations sur le numéro de client, le nom du client, sa localisation, le nombre d’articles commandés et la somme investie en euros. Elle se présente comme suit :

<table>
  <thead>
    <tr>
      <th><strong>Numéro client</strong></th>
      <th><strong>Nom</strong></th>
      <th><strong>Ville</strong></th>
      <th><strong>Articles</strong></th>
      <th><strong>Montant total</strong></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>1427</td>
      <td>Foucault</td>
      <td>Marseille</td>
      <td>14</td>
      <td>634</td>
    </tr>
    <tr>
      <td>1377</td>
      <td>Berron</td>
      <td>Strasbourg</td>
      <td>9</td>
      <td>220</td>
    </tr>
    <tr>
      <td>1212</td>
      <td>Froissy</td>
      <td>Lille</td>
      <td>15</td>
      <td>619</td>
    </tr>
    <tr>
      <td>1431</td>
      <td>Courtier</td>
      <td>Strasbourg</td>
      <td>22</td>
      <td>912</td>
    </tr>
    <tr>
      <td>1118</td>
      <td>Sulis</td>
      <td>NULL</td>
      <td>10</td>
      <td>312</td>
    </tr>
  </tbody>
</table>

Si nous appliquons maintenant la variante de base de la fonction à ce tableau, nous obtenons le code suivant :

```sql
SELECT COUNT(*)
FROM Liste de clients ;
```

Vous obtenez en sortie la valeur `5`, car votre table contient cinq lignes.

## Spécifier la requête des colonnes

En plaçant un astérisque après `COUNT`, vous indiquez au système de prendre en compte toutes les lignes et tous les champs sans exception. Il est également possible de limiter la requête à certaines colonnes. Dans ce cas, **les valeurs NULL ne sont pas prises en compte**. Ainsi, si nous vérifions le nombre de lignes dans `Ville`, nous obtiendrons un résultat global différent :

```sql
SELECT COUNT(Ville)
FROM Liste de clients;
```

Comme aucune ville n’a été définie pour le client `Sulis`, nous obtenons le résultat `4`.

## Combinaison avec `WHERE`

Dans l’étape suivante, nous utilisons la fonction avec une condition `WHERE`. Cela permet de filtrer les entrées **selon nos besoins**. Par exemple, si nous voulons simplement vérifier combien de clients viennent de Strasbourg, nous insérons cette condition :

```sql
SELECT COUNT(Ville)
FROM Liste de clients
WHERE Ville = 'Strasbourg';
```

Nous obtenons maintenant le résultat `2`.

De la même manière, SQL `COUNT()` fonctionne si nous voulons seulement prendre en compte les clients qui ont acheté pour au moins 400 euros :

```sql
SELECT COUNT(Ville)
FROM Liste de clients
WHERE Montant total > 400;
```

Cela s’applique à trois clients.

## Exclure les entrées en double

Avec le mot-clé `DISTINCT`, vous pouvez **exclure les entrées en double**. Ainsi, si vous souhaitez savoir de combien de villes différentes proviennent vos clients, utilisez le code suivant :

```sql
SELECT COUNT(DISTINCT Ville)
FROM Liste de clients;
```

Dans ce cas, le résultat est `4`. Les deux entrées pour Strasbourg n’ont été comptées qu’une seule fois. Comme le champ pour le client `Sulis` est NULL, celui-ci est également exclu du classement.

## La fonction SQL `COUNT()` avec un alias

Si vous souhaitez donner un titre supplémentaire à la sortie, vous pouvez utiliser le mot-clé « AS » (plus d’informations sur les [alias SQL](https://www.ionos.fr/digitalguide/serveur/configuration/alias-sql/) dans notre Digital Guide). Celui-ci **crée un alias pour la durée de la requête**. Voici un alias possible dans le cadre de notre exemple :

```sql
SELECT COUNT(*) AS [Nombre d’entrées]
FROM Liste de clients;
```

La sortie est alors la suivante :

```sql
Nombre d’entrées
5
```

Conseil Choisissez le modèle de base de données qui vous convient vraiment : 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, vous utilisez selon vos besoins MSSQL, MySQL ou MariaDB et profitez d’une performance de pointe, d’une architecture de sécurité solide et de conseils personnalisés.


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