DISTINCT retire les lignes identiques du résultat
Une colonne peut contenir plusieurs fois la même valeur. SELECT DISTINCT conserve une seule occurrence de chaque combinaison affichée, sans modifier la table d’origine.
Pour connaître les catégories présentes dans un catalogue, il suffit de sélectionner la colonne categorie avec DISTINCT.
SELECT DISTINCT categorie
FROM produits
ORDER BY categorie ASC;Avec plusieurs colonnes, l’unicité porte sur la combinaison
Si categorie et marque apparaissent dans SELECT, SQL conserve chaque couple catégorie-marque différent. Une même catégorie peut donc figurer sur plusieurs lignes lorsqu’elle contient plusieurs marques.
Avant d’utiliser DISTINCT, formulez précisément ce qu’une ligne unique doit représenter. Cette étape évite de masquer un problème de jointure ou de qualité des données.
- Une colonne : une valeur unique par ligne.
- Deux colonnes : un couple unique par ligne.
- DISTINCT ne remplace pas une condition de jointure correcte.
SELECT DISTINCT categorie, marque
FROM produits
ORDER BY categorie ASC, marque ASC;LIMIT réduit le nombre de lignes retournées
LIMIT s’écrit à la fin de la requête et conserve seulement le nombre de lignes demandé. Il est utile pour explorer une grande table ou afficher un classement court.
Sans ORDER BY, la base ne garantit pas quelles lignes arriveront en premier. Un top 3 doit donc toujours préciser son ordre.
SELECT produit, prix
FROM produits
ORDER BY prix DESC, id_produit ASC
LIMIT 3;Filtrer, trier, puis limiter
Dans une requête simple, WHERE sélectionne d’abord les lignes pertinentes, ORDER BY les classe, puis LIMIT réduit le résultat.
Cette séquence permet par exemple de trouver les deux produits de bureau les moins chers sans mélanger les autres catégories.
- PostgreSQL, MySQL et SQLite utilisent LIMIT.
- SQL Server utilise généralement TOP ou OFFSET/FETCH.
- Ajoutez un critère de départage lorsque le premier tri n’est pas unique.
SELECT produit, prix
FROM produits
WHERE categorie = 'Bureau'
ORDER BY prix ASC, id_produit ASC
LIMIT 2;Erreurs fréquentes
DISTINCT et LIMIT sont simples, mais une requête techniquement valide peut répondre à la mauvaise question.
- Utiliser DISTINCT pour cacher des doublons créés par une jointure incorrecte.
- Croire que DISTINCT s’applique uniquement à la première colonne sélectionnée.
- Écrire LIMIT sans ORDER BY pour produire un classement.
- Limiter avant d’avoir appliqué le bon filtre métier.
Vérifiez votre compréhension
Affichez les trois catégories uniques de la table produits, dans l’ordre alphabétique.
SELECT -- valeurs uniques
FROM produits
ORDER BY -- tri
LIMIT -- nombre de lignes;Progression locale
Avez-vous terminé cette leçon ?
Votre choix reste dans votre navigateur et ne nécessite aucun compte.