Organisation et statistiques

15 minutes de SQL

Éliminer les doublons avec DISTINCT et trier avec ORDER BY

Thème : Organisation et statistiques

Niveau : ECG2

Année : Maths appliquées

Objectif : Dans cette fiche, on apprend à supprimer les doublons avec DISTINCT et à trier un résultat avec ORDER BY. Ces deux outils améliorent la lisibilité des résultats et sont très utilisés en pratique.

Les commandes à connaître

DISTINCT

DISTINCT permet d’afficher une valeur une seule fois, même si elle apparaît sur plusieurs lignes.

  • SELECT DISTINCT colonne FROM table; supprime les doublons sur la colonne affichée.
  • Si plusieurs colonnes sont affichées, DISTINCT s’applique au couple (ou au n-uplet) de colonnes.
SELECT DISTINCT ville
FROM clients;

ORDER BY

ORDER BY trie les lignes du résultat selon une (ou plusieurs) colonnes.

  • Par défaut, le tri est croissant : ORDER BY colonne équivaut à ORDER BY colonne ASC.
  • Pour trier en décroissant, on utilise DESC.
  • On peut trier sur plusieurs colonnes : ORDER BY col1, col2.
SELECT nom, prix
FROM produits
ORDER BY prix DESC, nom ASC;

DISTINCT et ORDER BY

On combine souvent les deux :

  • DISTINCT supprime les doublons.
  • ORDER BY trie ensuite le résultat pour le rendre lisible.
SELECT DISTINCT ville
FROM clients
ORDER BY ville;

Exemples commentés

Exemple 1

On dispose d'une base de données Boutique et, dans cette base, des tables suivantes :

  • clients(id_client, nom, ville)
  • commandes(id_commande, id_client, date_commande)
  • produits(id_produit, nom, categorie, prix)
  • lignes_commande(id_commande, id_produit, quantite)

On veut afficher la liste des villes des clients, sans doublons, puis trier le résultat par ordre alphabétique.

SELECT DISTINCT ville
FROM clients
ORDER BY ville;
Exemple 2

On dispose d'une base de données Films et, dans cette base, des tables suivantes :

  • films(film_id, film_titre, annee_sortie, realisateur, budget, box_office, notes_imdb)

On veut afficher le titre et la note IMDB de chaque film, en commençant par les films les mieux notés.

SELECT film_titre, notes_imdb
FROM films
ORDER BY notes_imdb DESC, film_titre ASC;
Exemple 3

On dispose d'une base de données Cafés parisiens et, dans cette base, des tables suivantes :

  • cafes(nom, adresse, arrondissement, prix_cafe)

On veut afficher les cafés du 14e arrondissement, en les triant du moins cher au plus cher.

SELECT nom, prix_cafe
FROM cafes
WHERE arrondissement = 14
ORDER BY prix_cafe ASC, nom ASC;
Exemple 4

On dispose d'une base de données Personnel et, dans cette base, des tables suivantes :

  • services(id_service, nom_service, ville)
  • employes(id_employe, nom, age, salaire, id_service)

On veut afficher la liste des villes où se trouvent les services, sans doublons, puis trier cette liste.

SELECT DISTINCT ville
FROM services
ORDER BY ville;
Exemple 5

On dispose d'une base de données Communication et, dans cette base, des tables suivantes :

  • personnes(idpers, nom, tel, email)
  • evenements(idevenement, nomevenement, date, lieu)
  • invitation(idpers, idevenement, datedenvoi, message)

On veut afficher le nom et la date des événements, en commençant par les événements les plus récents.

SELECT nomevenement, date
FROM evenements
ORDER BY date DESC, nomevenement ASC;

Et pour quelques minutes de plus…

Prendre en main la programmation, pas à pas.

Ces exercices sont conçus pour t’aider à maîtriser progressivement les requêtes SQL, en partant de la lecture et de la compréhension du code, jusqu’à l’écriture autonome de requêtes complètes.

L’objectif n’est pas d’aller vite, mais de construire des automatismes solides, en comprenant ce que fait chaque commande, puis en apprenant à les utiliser par toi-même.

L’ordre des exercices est volontaire : on lit, on comprend, on complète, puis on écrit seul. Prends le temps de chaque étape : c’est la clé pour progresser durablement.

Niveau 1 Lire et interpréter

Comprendre avant d’écrire.
Dans cette première série, tu observes et analyses des requêtes SQL déjà écrites. L’objectif est de comprendre la logique et d’être capable d'expliquer ce que renvoie la requête.

Niveau 2 Compléter une requête

Écrire, mais avec un cadre.
Ici, tu passes à l’écriture sans partir de zéro. Le squelette de la requête est fourni : il te reste à compléter certaines parties pour que le code fonctionne correctement. Ce format permet de se concentrer sur l’essentiel, sans se perdre dans la structure générale.

Niveau 3 Écrire une requête

Passer à l’autonomie.
Dans cette dernière série, tu écris les requêtes complètes à partir d’une consigne. Tu dois organiser ton code, choisir les bonnes instructions et construire la logique globale. C’est ici que tu mets en pratique tout ce que tu as appris dans les niveaux précédents.

error: Ce contenu est protégé !