Maison > base de données > tutoriel mysql > Comment sélectionner des lignes uniques avec la valeur minimale en SQL ?

Comment sélectionner des lignes uniques avec la valeur minimale en SQL ?

Linda Hamilton
Libérer: 2025-01-24 08:11:10
original
534 Les gens l'ont consulté

How to Select Unique Rows with the Minimum Value in SQL?

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>
Copier après la connexion

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!

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