Maison >base de données >tutoriel mysql >Comment puis-je utiliser DISTINCT et ORDER BY ensemble dans une seule instruction SQL SELECT pour supprimer les doublons et trier par date ?
Utilisation de DISTINCT et ORDER BY dans une seule instruction SELECT
Pour tenter de supprimer les doublons d'un ensemble de résultats tout en classant les données par un à une date précise, vous avez rencontré un problème où DISTINCT et ORDER BY ne semblent pas fonctionner ensemble comme prévu.
Le défi se produit lorsque la colonne utilisée dans la clause ORDER BY n'est pas spécifiée dans la fonction DISTINCT. Pour résoudre ce problème, il est nécessaire d'utiliser une fonction d'agrégation au sein du DISTINCT et de regrouper les données par la catégorie souhaitée.
Pour obtenir le résultat souhaité, considérez le code suivant :
SELECT DISTINCT Category, MAX(CreationDate) FROM MonitoringJob GROUP BY Category ORDER BY MAX(CreationDate) DESC, Category
Ceci La requête utilise la fonction d'agrégation MAX(CreationDate) pour trier les lignes selon leur dernière date de création. La clause GROUP BY garantit que seules des catégories distinctes sont incluses dans le jeu de résultats. Enfin, la clause ORDER BY est appliquée à la fonction d'agrégation et à la colonne de catégorie, garantissant que les catégories sont ordonnées de la manière spécifiée.
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!