SQL : Sélectionnez la ligne avec la valeur maximale dans la colonne
Considérez un tableau de document simplifié avec les colonnes id, rev et content. Pour filtrer la table et récupérer les lignes contenant la valeur rev maximale pour chaque identifiant, vous pouvez utiliser les fonctions SQL MAX() et GROUP BY.
Utilisez GROUP BY pour extraire la valeur maximale
<code class="language-sql">SELECT id, MAX(rev) FROM YourTable GROUP BY id;</code>
Cependant, pour obtenir la ligne entière de données contenant la valeur de rev maximale pour chaque identifiant, vous pouvez faire deux choses :
Méthode 1 : Joindre avec un maximum de sous-requêtes
<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>
Méthode 2 : Utiliser vos propres conditions pour la jointure à gauche
<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>
Les deux méthodes utilisent des jointures gauches et des conditions de filtrage pour récupérer uniquement les lignes avec la plus grande valeur rev pour chaque identifiant. La deuxième méthode joint à gauche la table à elle-même, en utilisant une condition de jointure pour exclure les lignes en double avec la plus grande valeur rev.
Notes de performances
Les performances de ces méthodes peuvent varier en fonction de facteurs tels que le type de base de données, la taille de la table et l'utilisation de l'index. Il est recommandé de comparer les deux approches pour déterminer la meilleure solution pour votre 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!