Maison > base de données > tutoriel mysql > Comment récupérer les dernières dates pour chaque groupe de modèles dans MySQL ?

Comment récupérer les dernières dates pour chaque groupe de modèles dans MySQL ?

Linda Hamilton
Libérer: 2025-01-24 08:42:10
original
869 Les gens l'ont consulté

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.

How to Retrieve the Latest Dates for Each Model Group in 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>
Copier après la connexion

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>
Copier après la connexion

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>
    Copier après la connexion

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>
    Copier après la connexion

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>
    Copier après la connexion

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!

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