Maison >base de données >tutoriel mysql >Comment sélectionner des lignes distinctes avec la valeur minimale pour chaque identifiant et horodatage ?
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>
Cette méthode comprend :
record_date
pour chaque identifiant. 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!