DISTINCT
DISTINCT supprime les lignes en double du résultat, en comparant toutes les colonnes listées. On s'en sert pour obtenir la liste des valeurs possibles d'une colonne, comme les villes clientes.
- doublons
- unique
- dédoublonner
- COUNT DISTINCT
Syntaxe
SELECT DISTINCT colonne1, colonne2FROM table;Exemple
SELECT DISTINCT cityFROM customersORDER BY city;-- Jeu de données : boutique-- Résultat attendu :-- Lyon-- Marseille-- ParisÀ retenir
- SELECT DISTINCT a, b élimine les couples (a, b) identiques, pas les valeurs de a seules.
- COUNT(DISTINCT city) compte les valeurs différentes : 3 villes ici, contre 5 clients avec COUNT(city).
- Piège : ajouter DISTINCT pour faire disparaître des doublons cache souvent une jointure mal posée qui multiplie les lignes. Corrigez la jointure plutôt que d'en masquer l'effet.
- DISTINCT considère que deux NULL sont identiques : une seule ligne NULL reste dans le résultat.
Voir aussi
- SELECTSELECT est la question posée à la base : quelles colonnes afficher et depuis quelle table (FROM). C'est le point de départ de toute requête de lecture, du simple listing au rapport.
- COUNT & GROUP BYGROUP BY range les lignes en groupes selon une ou plusieurs colonnes, puis COUNT, SUM ou AVG calculent une valeur par groupe. On obtient un tableau de synthèse, une ligne par groupe.
- UNION / UNION ALLUNION empile les lignes de deux requêtes compatibles en un seul résultat. UNION supprime les doublons, UNION ALL les garde et va plus vite. Utile pour fusionner des listes de même nature.