Maison > base de données > tutoriel mysql > Comment trier par date et heure avant de regrouper par nom dans MySQL ?

Comment trier par date et heure avant de regrouper par nom dans MySQL ?

Linda Hamilton
Libérer: 2024-11-01 22:59:29
original
548 Les gens l'ont consulté

How to Order by Date and Time Before Grouping by Name in MySQL?

ORDER BY Date et heure avant le nom GROUP BY dans MySQL

Dans MySQL, la clause ORDER BY est appliquée avant la clause GROUP BY. Cependant, dans certains scénarios, les utilisateurs doivent trier les données par champs de date et d'heure avant d'effectuer un GROUP BY sur la colonne de nom.

Considérez le tableau suivant :

name date time
tom 2011-07-04 01:09:52
tom 2011-07-04 01:09:52
mad 2011-07-04 02:10:53
mad 2009-06-03 00:01:01

L'objectif est de récupérez d'abord le nom le plus ancien. La requête suivante échoue :

SELECT *
ORDER BY date ASC, time ASC
GROUP BY name
Copier après la connexion

Cela est dû au fait que GROUP BY est appliqué avant ORDER BY, ce qui entraîne le regroupement des enregistrements portant le même nom avant le tri. En conséquence, l'ordre attendu n'est pas atteint.

Solution :

Pour résoudre ce problème, on peut utiliser l'approche suivante :

SELECT *
FROM (
    SELECT * FROM table_name
    ORDER BY date ASC, time ASC
) AS sub
GROUP BY name
Copier après la connexion

Dans cette requête :

  • La sous-requête crée un ensemble de résultats intermédiaires en classant les lignes d'abord par date, puis par heure croissante.
  • La requête externe sélectionne toutes les colonnes de la sous-requête. et effectue l'opération GROUP BY sur la colonne de nom.

En utilisant cette méthode, GROUP BY est appliqué à l'ensemble de résultats ordonné, garantissant que le nom le plus ancien est récupéré en premier, quelles que soient la date et l'heure. champs.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal