Unicité d’affichage ou calcul par groupe ?
SELECT DISTINCT categorie exprime directement une demande de liste unique. GROUP BY categorie devient naturel lorsqu’on ajoute COUNT, SUM ou AVG.
Aucun des deux ne corrige un doublon dans la table source. Ils façonnent seulement le résultat de lecture.
La requête expliquée
Commencez par définir ce que doit représenter une ligne du résultat. Cette décision détermine les colonnes, les regroupements et les contrôles nécessaires.
L’exemple suivant isole le mécanisme principal. Exécutez-le, observez le résultat, puis modifiez une seule clause à la fois pour comprendre son effet.
SELECT categorie, COUNT(*) AS produits
FROM produits
GROUP BY categorie
ORDER BY produits DESC, categorie;Lire le résultat comme un analyste
Une ligne représente désormais une catégorie. Le compteur explique son poids, ce qu’un simple DISTINCT ne ferait pas.
Si plusieurs colonnes sont sélectionnées, DISTINCT porte sur leur combinaison complète ; définissez donc précisément l’unicité attendue.
- Écrire ce qu’une ligne unique représente.
- Inspecter les clés de la source.
- Utiliser GROUP BY pour les agrégations.
- Ajouter un tri stable.
Les erreurs qui faussent l’analyse
Une requête peut être valide sans répondre correctement à la question. Les erreurs les plus coûteuses sont souvent silencieuses : mauvais périmètre, ligne multipliée ou valeur absente interprétée comme zéro.
Avant de partager le résultat, confrontez-le à un petit échantillon calculé à la main et conservez la définition du périmètre avec la requête.
- Utiliser DISTINCT pour cacher une mauvaise jointure.
- Croire qu’il agit uniquement sur la première colonne.
- Grouper par une colonne inutile et changer le grain.
- Confondre déduplication du résultat et nettoyage de la source.
Passez à la pratique
Listez les catégories uniques, puis transformez la requête en comptage par catégorie pour comparer les deux intentions.
Le simulateur SQL de SQL.tn exécute uniquement des requêtes de lecture sur des données fictives dans votre navigateur. Vous pouvez essayer plusieurs écritures et comparer leur résultat sans installer de logiciel.
Mettez ce guide en pratique.
Ouvrez l’exercice associé, exécutez votre requête et comparez le résultat attendu.
