Extraction de lignes uniques avec des valeurs minimales à l'aide de SQL
Les requêtes SQL impliquent fréquemment la sélection de lignes spécifiques en fonction de conditions définies. Un scénario courant consiste à récupérer la ligne avec la valeur minimale dans une colonne, tout en garantissant que seules les lignes uniques sont renvoyées.
Illustrons avec cet exemple de tableau :
<code>id | game | point -------+--------+-------- 1 | x | 5 1 | z | 4 2 | y | 6 3 | x | 2 3 | y | 5 3 | z | 8</code>
Pour obtenir le id
avec la valeur point
la plus basse pour chaque game
, nous pouvons utiliser une sous-requête et une jointure interne. La sous-requête identifie le minimum point
pour chaque id
:
SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id
Cette sous-requête produit des id
et leurs valeurs point
minimales respectives. La requête principale joint ensuite ce résultat à la table d'origine, en filtrant les lignes correspondant au minimum de points :
SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point;
Résultat de la requête :
<code>id | game | point -------+--------+-------- 1 | z | 4 3 | x | 2 2 | y | 6</code>
Cette méthode renvoie efficacement des lignes uniques contenant la valeur point
minimale pour chaque id
, fournissant ainsi un ensemble de données propre pour une analyse ultérieure.
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!