Comment obtenir la dernière date de chaque groupe de modèles dans la base de données MySQL ?
Cet article expliquera comment extraire la dernière date de chaque groupe de modèles à partir de données groupées dans une base de données MySQL.
Obtenir la dernière date à partir des données MySQL groupées
En supposant que la table de la base de données contient des détails sur les modèles et leurs dates correspondantes, l'objectif est d'extraire la dernière date pour chaque groupe de modèles. Ceci peut être réalisé à l'aide de requêtes SQL.
Décomposons la requête d'origine :
<code class="language-sql">SELECT model, date FROM doc WHERE date ........????? //接下来是什么? GROUP BY model</code>
L'espace réservé manquant est une expression conditionnelle qui détermine la dernière date. Une façon consiste à utiliser la fonction max()
:
<code class="language-sql">SELECT model, max(date) FROM doc GROUP BY model</code>
Cette requête calcule la valeur de date maximale pour chaque modèle, fournissant ainsi la dernière date pour chaque groupe.
Autres méthodes de requête
Tous les modèles incluant la date maximale :
<code class="language-sql"> SELECT model, date FROM doc WHERE date IN (SELECT max(date) FROM doc)</code>
Cette requête récupère tous les modèles dont la date correspond à la date maximale dans l'ensemble du tableau.
Records détaillés avec la dernière date :
<code class="language-sql"> SELECT d.model, d.date, d.color, d.etc FROM doc d WHERE d.date IN (SELECT max(d2.date) FROM doc d2 WHERE d2.model=d.model)</code>
Cette requête récupère les enregistrements détaillés pour chaque modèle qui correspondent à la dernière date dans leur groupe respectif.
Utiliser la clause OVER (MySQL 8.0) :
<code class="language-sql"> SELECT model, date, color, etc FROM (SELECT model, date, color, etc, max(date) OVER (PARTITION BY model) max_date FROM doc) predoc WHERE date=max_date;</code>
Pour les grands ensembles de données, cette requête fournit une solution plus rapide en utilisant la clause OVER, qui calcule la date maximale pour chaque groupe modèle et sélectionne uniquement les derniers enregistrements.
Grâce aux méthodes ci-dessus, vous pouvez choisir l'instruction SQL appropriée en fonction de vos besoins pour obtenir efficacement la dernière date de chaque groupe de modèles. Pour MySQL 8.0 et supérieur, il est recommandé d'utiliser la méthode de la clause OVER
car elle est plus efficace lors du traitement de grands ensembles de données.
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!