Maison > base de données > tutoriel mysql > Comment puis-je supprimer les lignes en double tout en conservant l'ordre dans une instruction SQL SELECT ?

Comment puis-je supprimer les lignes en double tout en conservant l'ordre dans une instruction SQL SELECT ?

DDD
Libérer: 2025-01-07 09:21:42
original
691 Les gens l'ont consulté

How Can I Remove Duplicate Rows While Maintaining Order in a SQL SELECT Statement?

Utilisation de DISTINCT et ORDER BY dans la même instruction SELECT

Après avoir exécuté une instruction SELECT, récupérer la colonne Category de la table MonitoringJob et ordonner le résultats par la colonne CreationDate par ordre décroissant, la base de données peut renvoyer des valeurs en double. Pour éliminer les doublons tout en conservant l'ordre spécifié, le mot-clé DISTINCT peut être utilisé. Cependant, l'utilisation de DISTINCT seule peut ne pas suffire.

Dans l'exemple fourni, l'utilisation du mot-clé DISTINCT à elle seule ne résoudra pas le problème car la clause ORDER BY repose sur la colonne CreationDate, qui contient des valeurs en double. Pour résoudre ce problème, une fonction d'agrégation telle que MAX() peut être combinée avec le mot-clé DISTINCT pour trier les résultats en fonction d'une colonne spécifique tout en excluant les doublons. De plus, une clause GROUP BY est nécessaire pour créer des catégories uniques basées sur la colonne utilisée dans l'opération DISTINCT.

Une solution appropriée serait :

SELECT DISTINCT Category, MAX(CreationDate)
FROM MonitoringJob
GROUP BY Category
ORDER BY MAX(CreationDate) DESC, Category
Copier après la connexion

Cette instruction modifiée garantira que les doublons sont supprimés en préservant l'ordre souhaité en triant sur la colonne MAX(CreationDate) puis par Catégorie. En conséquence, le résultat souhaité sera obtenu, répertoriant les catégories distinctes par ordre décroissant en fonction de leurs dernières valeurs CreationDate.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal