# SQL SELECT DISTINCT : supprimer les valeurs en double dans les requêtes de données

Avec SQL `SELECT DISTINCT`, vous vous assurez que les requêtes de données **ne contiennent que des enregistrements et des lignes uniques** dans les résultats. `SELECT DISTINCT` supprime les doublons des enregistrements et lignes sélectionnés et optimise la précision et la clarté de votre analyse de données.

## Qu’est-ce que SQL `SELECT DISTINCT` ?

`SELECT DISTINCT` est un opérateur de traitement SQL qui est utilisé en combinaison avec la commande SQL SELECT. La commande `SELECT` sélectionne une ou plusieurs colonnes et enregistrements dans les requêtes de données. En combinaison avec l’opérateur `DISTINCT`, vous vous assurez qu’il n’y a **que des lignes uniques et différentes** dans le résultat de votre requête et que les lignes et valeurs en double sont supprimées. En combinant `SELECT DISTINCT` avec d’autres opérateurs SQL et commandes SQL, vous pouvez personnaliser vos requêtes selon vos besoins.

### Différence entre SQL `SELECT DISTINCT` et `SELECT UNIQUE`

`UNIQUE` et `DISTINCT` se ressemblent dans leur signification, mais remplissent des fonctions **différentes** en tant qu’opérateurs SQL. Pour utiliser correctement SQL `SELECT DISTINCT`, vous devez donc savoir comment les deux opérateurs se distinguent :

<table>
  <thead>
    <tr>
      <th>SQL `SELECT DISTINCT`</th>
      <th>SQL `SELECT UNIQUE`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Vérifie les doublons de lignes et de valeurs dans des enregistrements entiers, élimine les redondances et ne renvoie que des résultats distincts et uniques dans les résultats</td>
      <td>Convient pour empêcher la saisie de doublons et de valeurs doubles dans des tables et des colonnes sélectionnées en limitant les colonnes</td>
    </tr>
    <tr>
      <td>Utilisé principalement pour l’évaluation, l’analyse et la comparaison d’ensembles de données afin d’obtenir des résultats clairs et significatifs</td>
      <td>Utilisé pour la création et la modification de tableaux afin de garantir une meilleure intégrité des données sans redondance</td>
    </tr>
  </tbody>
</table>

Conseil Vous souhaitez vous initier rapidement au langage de programmation et de base de données [SQL](https://www.ionos.com/fr-be/digitalguide/serveur/know-how/definition-de-sql/) ? Notre [introduction à SQL avec exemples](https://www.ionos.com/fr-be/digitalguide/serveur/configuration/introduction-a-sql-a-laide-dexemples/) vous révèle les principales fonctions et les bases de SQL.

## Syntaxe de `SELECT DISTINCT`

La syntaxe de `SELECT DISTINCT` se présente comme suit :

```sql
SELECT DISTINCT colonneA, colonneB, ...
FROM Table;
```

Voici les différents paramètres utilisés :

- `SELECT DISTINCT` : la commande `SELECT` combinée à l’opérateur `DISTINCT` sélectionne les colonnes dont vous voulez supprimer les doublons dans votre résultat.
- `FROM` : sélectionne la table dans laquelle vous voulez rechercher les doublons dans les colonnes.
- `WHERE` : la clause optionnelle SQL WHERE vous permet de limiter la recherche de données aux valeurs pertinentes en ajoutant des conditions supplémentaires.

## Applications de `SELECT DISTINCT`

Les possibilités d’utilisation des requêtes avec SQL `SELECT DISTINCT` sont **presque illimitées**. Vous pouvez par exemple :

- Réduire les données de clients, de commandes, de patients ou de produits qui apparaissent plusieurs fois dans des lignes à une entrée unique.
- Compter le nombre d’achats de produits à l’aide des commandes et de l’ID de produit et les présenter de manière univoque.
- Récupérer les données uniques des patients ou des clients.
- Afficher toutes les adresses de livraison ou tous les fournisseurs d’une région.

## Exemples pratiques de SQL `SELECT DISTINCT`

Pour illustrer le fonctionnement de SQL `SELECT DISTINCT`, voici deux exemples pratiques.

### Récupérer tous les clients

Vous souhaitez récupérer de manière univoque tous les clients et clientes d’une table « Commandes », sans lignes doubles dues à des commandes multiples. Procédez comme suit :

```sql
SELECT DISTINCT Nom du client
FROM Commandes
```

### Filtrer les clients d’une région donnée

La clause `WHERE` vous permet de définir plus précisément l’analyse des données clients **par des conditions supplémentaires**. Par exemple, si vous souhaitez récupérer dans le tableau « Commandes » tous les noms de clients qui proviennent de France, procédez comme suit :

```sql
SELECT DISTINCT Noms de clients, Pays
FROM Commandes 
WHERE Pays = 'France'
```

## Alternatives à SQL `SELECT DISTINCT`

Bien que `SELECT DISTINCT` soit un moyen pratique de supprimer les doublons dans les requêtes de données, `DISTINCT` n’est pas toujours la meilleure solution. Comme l’opérateur nécessite relativement beaucoup de ressources pour comparer chaque colonne sélectionnée dans les grands ensembles de données, il est préférable de choisir des **alternatives avec une fonction similaire**. Il s’agit notamment de :

- `GROUP BY` : avec la clause SQL GROUP BY, vous regroupez les enregistrements souhaités des colonnes indiquées et les précisez avec d’autres fonctions et opérateurs.
- `EXISTS` : avec SQL EXISTS, vous vérifiez si des valeurs et des enregistrements spécifiques existent dans une autre table.
- `COUNT` : en combinant `DISTINCT` avec la fonction SQLCOUNT, vous pouvez compter des valeurs uniques dans des colonnes.
- `SELECT` + `FROM` + `WHERE` : avec une sous-requête, c’est-à-dire une requête imbriquée dans une autre requête, vous pouvez mieux limiter vos résultats. Pour cela, sélectionnez la colonne concernée dans la sous-requête avec `SELECT`, définissez avec `FROM` dans quelle table se trouve la colonne et déterminez avec `WHERE` les conditions auxquelles les résultats doivent répondre.


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