Kodokon kodokon.com

Trier et dédoublonner : ORDER BY, LIMIT, DISTINCT

Maîtrisez le tri des résultats avec ORDER BY, la limitation du nombre de lignes avec LIMIT et la suppression des doublons avec DISTINCT.

6 min · 3 questions

Ouvrir cette leçon dans Kodokon

Par défaut, l'ordre des lignes renvoyées par un SELECT n'est pas garanti : la base les retourne comme cela l'arrange. Pour imposer un ordre, ajoutez ORDER BY suivi d'une colonne. Le tri est croissant par défaut (on peut l'expliciter avec ASC) ; ajoutez DESC pour un tri décroissant.

SQL
SELECT title, price FROM books ORDER BY price;

SELECT title, price FROM books ORDER BY price DESC;
Du moins cher au plus cher, puis l'inverse

On peut trier sur plusieurs colonnes : ORDER BY genre, price DESC trie d'abord par genre, puis, à genre égal, du plus cher au moins cher. La clause LIMIT ne conserve que les N premières lignes du résultat : combinée à ORDER BY, elle donne un « top N ». LIMIT 3 OFFSET 2 sauterait en plus les 2 premières lignes.

SQL
SELECT title, price FROM books
ORDER BY price DESC
LIMIT 3;
Le top 3 des livres les plus chers

Dernier outil : DISTINCT, placé juste après SELECT, supprime les doublons du résultat. Notre table contient 7 livres mais seulement 3 genres différents : sans DISTINCT, la requête ci-dessous afficherait 7 lignes avec des répétitions.

SQL
SELECT DISTINCT genre FROM books;

SELECT DISTINCT author FROM books;
3 genres uniques, puis 6 auteurs uniques

Quiz de validation

Vérifiez que vous avez bien retenu les points clés de cette leçon.

  1. Comment trier les livres du plus cher au moins cher ?
    • ORDER BY price
    • ORDER BY price DESC
    • SORT BY price DESC
  2. Que renvoie SELECT DISTINCT genre FROM books; sur notre table ?
    • Les 7 genres, un par livre
    • Chaque genre une seule fois, soit 3 lignes
    • Le genre le plus fréquent
  3. Que renvoie LIMIT 5 utilisé sans ORDER BY ?
    • Les 5 lignes les plus récentes
    • 5 lignes dans un ordre non garanti
    • Une erreur de syntaxe