Comment sélectionner la ligne unique avec la valeur minimale dans une requête SQL ?
Dans les bases de données, il est souvent nécessaire d'extraire les enregistrements contenant la valeur minimale d'une colonne spécifique. Supposons qu'un tableau contienne les colonnes « id », « game » et « point ». Pour sélectionner les seules lignes avec la plus petite valeur « point » (regroupées par « jeu »), vous pouvez utiliser la requête SQL valide suivante :
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point</code>
Cette requête garantit que seules les lignes avec la plus petite valeur de « point » pour chaque « identifiant » unique sont sélectionnées. La sous-requête entre parenthèses calcule la valeur minimale de « point » pour chaque « id » et la stocke dans la colonne temporaire « MinPoint ». La requête principale rejoint ensuite la table d'origine (« TableName ») avec cette table temporaire en fonction de la colonne commune « id ».
En filtrant la condition 'tbl1.MinPoint = tbl.Point', la requête garantit que seules les lignes dont la valeur 'point' correspond à la valeur minimale dans chaque groupe 'id' sont renvoyées. Cela produira le résultat souhaité, où pour chaque « jeu », la ligne unique avec la plus petite valeur de « point » est sélectionnée.
Exemple :
Considérez la forme suivante :
id | game | point |
---|---|---|
1 | x | 5 |
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
3 | y | 5 |
3 | z | 8 |
L'exécution de la requête ci-dessus sur cette table produira le résultat suivant :
id | game | point |
---|---|---|
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
Comme vous pouvez le voir, la requête identifie correctement la ligne unique avec la plus petite valeur de « point » pour chaque « jeu ».
Remarque : il existe des incohérences entre les exemples de données d'origine et les résultats. Le tableau des résultats a été corrigé pour le rendre cohérent avec les résultats de l'instruction SQL. Le tableau des résultats corrigés montre la ligne avec la plus petite valeur id
pour chaque point
. Si vous devez sélectionner la plus petite valeur game
par point
regroupement, vous devez modifier l'instruction SQL.
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!