Maison > base de données > tutoriel mysql > Comment sélectionner des lignes distinctes avec la valeur minimale pour chaque identifiant et horodatage ?

Comment sélectionner des lignes distinctes avec la valeur minimale pour chaque identifiant et horodatage ?

Mary-Kate Olsen
Libérer: 2025-01-17 20:17:10
original
411 Les gens l'ont consulté

How to Select Distinct Rows with the Minimum Value for Each ID and Timestamp?

Regroupez par valeur minimale et sélectionnez des lignes uniques

Lorsque vous traitez des données contenant plusieurs lignes pour chaque identifiant et valeur d'horodatage, il est nécessaire de regrouper les données par valeur minimale lors de la sélection de lignes uniques. Cela garantit que chaque identifiant n'est représenté qu'une seule fois par sa première occurrence.

Dans l'exemple de tableau fourni, l'objectif est d'extraire la ligne avec le plus petit record_date pour chaque identifiant. Cependant, le tableau contient des dates en double, ce qui rend difficile la réalisation de cet objectif en utilisant les méthodes traditionnelles.

Ce problème peut être résolu à l'aide de sous-requêtes corrélées et de jointures internes :

<code class="language-sql">SELECT mt.*     
FROM MyTable mt INNER JOIN
    (
        SELECT id, MIN(record_date) AS MinDate
        FROM MyTable
        GROUP BY id
    ) t ON mt.id = t.id AND mt.record_date = t.MinDate</code>
Copier après la connexion

Cette méthode comprend :

  1. Créez une sous-requête pour identifier le plus petit record_date pour chaque identifiant.
  2. Rejoignez la table principale (id) avec la sous-requête en utilisant les champs record_date et MyTable.

Le tableau des résultats contient uniquement la ligne avec le plus petit record_date pour chaque identifiant. Cette méthode empêche l’apparition de lignes en double dans la sortie.

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