


Comment combiner DISTINCT et ORDER BY pour des résultats uniques et ordonnés en SQL ?
Jan 07, 2025 am 09:06 AMComment utiliser DISTINCT et ORDER BY dans la même instruction SELECT
Les requêtes exécutées renvoient souvent des données en double et commandent ces données à l'aide de ORDER BY à lui seul, cela ne suffira peut-être pas à supprimer ces doublons. Cependant, en combinant DISTINCT et ORDER BY dans une seule instruction SELECT, les développeurs peuvent éliminer efficacement les doublons tout en conservant l'ordre souhaité.
Pour résoudre ce problème, la clause ORDER BY doit inclure les colonnes utilisées dans la clause SELECT. Lorsque DISTINCT est utilisé, il regroupe les résultats en fonction des colonnes spécifiées, supprimant ainsi les doublons. Cependant, si la clause ORDER BY fait référence à des colonnes non incluses dans DISTINCT, le classement regroupera de manière incorrecte toutes les lignes ayant la même valeur dans les colonnes SELECT, entraînant des résultats en double.
Solution :
Pour résoudre Pour résoudre ce problème, la requête doit utiliser une fonction d'agrégation, telle que MAX(), pour trier sur la colonne souhaitée (CreationDate dans ce cas). De plus, une clause GROUP BY est ajoutée pour regrouper les résultats par colonnes DISTINCT (Catégorie). Cette combinaison garantit la suppression des doublons tout en préservant l'ordre des résultats. La requête modifiée serait la suivante :
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Cette requête révisée produira les résultats souhaités, en éliminant les doublons de la catégorie et en les classant par CreationDate par ordre décroissant, suivi de Category.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Comment sécuriser MySQL contre les vulnérabilités communes (injection SQL, attaques par force brute)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
