Maison > base de données > tutoriel mysql > Comment sélectionner des lignes avec la valeur maximale dans une colonne à l'aide de SQL ?

Comment sélectionner des lignes avec la valeur maximale dans une colonne à l'aide de SQL ?

Linda Hamilton
Libérer: 2025-01-25 20:52:10
original
881 Les gens l'ont consulté

How to Select Rows with the Maximum Value in a Column Using SQL?

Astuce SQL : Filtrez efficacement les lignes correspondant à la valeur maximale d'une colonne

Dans la base de données MySQL, il est souvent nécessaire d'extraire du groupe d'enregistrements la ligne correspondant à la valeur maximale d'une colonne spécifique. Cet article décrit deux méthodes principales.

Méthode 1 : Sous-requête et connexion

Cette méthode utilise une sous-requête pour déterminer la valeur maximale dans chaque groupe. La sous-requête regroupe les lignes par identifiant de regroupement et renvoie la valeur maximale de la colonne spécifiée. Ensuite, joignez les résultats à la table principale en utilisant l'identifiant de regroupement et la valeur maximale comme condition de jointure.

Exemple :

<code class="language-sql">SELECT a.id, a.rev, a.contents
FROM YourTable a
INNER JOIN (
    SELECT id, MAX(rev) rev
    FROM YourTable
    GROUP BY id
) b ON a.id = b.id AND a.rev = b.rev</code>
Copier après la connexion

Méthode 2 : Auto-connexion et filtrage

Une autre façon consiste à joindre la table principale à elle-même en utilisant une jointure externe gauche. La condition de jointure est appliquée à l'identifiant de regroupement et une condition supplémentaire est ajoutée pour comparer les valeurs sur les côtés gauche et droit de la jointure. Le filtre garantit que seules les lignes sans ligne correspondante à droite (c'est-à-dire la ligne avec la plus grande valeur) sont incluses dans le résultat.

Exemple :

<code class="language-sql">SELECT a.*
FROM YourTable a
LEFT OUTER JOIN YourTable b
ON a.id = b.id AND a.rev < b.rev
WHERE b.id IS NULL;</code>
Copier après la connexion

Résumé

Les deux méthodes donnent les mêmes résultats et sont conformes aux normes ANSI SQL. Ils sont également relativement respectueux des performances, mais les performances réelles varient en fonction du système de base de données, de la conception du schéma et de la présence d'index. Il est recommandé de comparer les deux approches afin de déterminer la meilleure solution pour un scénario spécifique.

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