SQL, comment afficher des résultats sans doublons ?

Publié par mook

Comment afficher des résultats sans doublons en SQL ?

Il existe trois façons, astuces, différentes d'afficher des résultats distincts dans requête SQL

La clause DISTINCT

La première méthode consiste à utiliser la clause DISTINCT directement après le SELECT. Dans ce cas, ça donne :

SELECT DISTINCT ma_colonne

FROM ma_table;

Pour prendre un exemple concret on considère que nous avons une base de données qui contient une table EMPLOYES qui elle contient les noms, prenoms et dates de naissance des employés d'une entreprise. La table EMPLOYES contient les enregistrements suivants :

On veut afficher les différents noms des employés. Concrètement, le résultat de la requête SQL devra retourner 9 enregistrements puisque le nom DURAND est présent 2 fois dans la table. La requête s'écrit :

SELECT DISTINCT nom_emp

FROM employes;

Cette requete va nous afficher une colonne avec les 9 noms différents. Si maintenant, on souhaite compter le nombre de nom distincts alors la requête s'écrit :

SELECT COUNT(DISTINCT nom_emp)

FROM employes;

Cette requête va nous retourner une ligne qui contiendra le nombre de noms différents, c'est à dire 9.

La clause UNIQUE

Avec la clause UNIQUE, les requêtes s'écrivent exactement de la même façons mis à part le fait que l'on remplace le DISTINCT par UNIQUE. En gros, utiliser l'une ou l'autre renvoie le même résultat.

Dans notre exemple du dessus, cela donne :

SELECT UNIQUE nom_emp

FROM employes;

SELECT COUNT(UNIQUE nom_emp)

FROM employes;

Astuce avec ma clause GROUP BY

La clause GROUP BY est une clause de groupe qui va permettre de grouper les résultats identiques. On peut donc l'utiliser pour grouper les résultats similaires et ne pas afficher les doublons. La requête avec un GROUP BY s'écrit : 

SELECT nom_emp

FROM employes

GROUP BY nom_emp;

Cette requête va afficher une colonne qui contiendra 9 résultats, 9 lignes avec une ligne par nom.

10
Sur le même thème

SQL, comment mettre à jour des données dans une table ?

SQL, comment faire une jointure sur 3 tables ?

Comment ajouter un bouton Twitter sur son site ou son blog ?

PHP, comment envoyer un mail au format texte ?

SQL, comment afficher les données d'une table ?

SQL, comment vider une table d'une base de données ?

SQL, comment supprimer une table d'une base de données ?

Ajouter des colonnes à une table existante en SQL

Créer une table sous SQL

Comment créer un flux RSS automatique avec PHP et mySQL ?

LES ARTICLES POPULAIRES
LES ARTICLES A DECOUVRIR