Sélection des deux premières lignes de chaque groupe SQL
En SQL, une tâche courante consiste à récupérer uniquement les premières lignes de chaque groupe. Cependant, les fonctions d'agrégation standard pour le regroupement (telles que MAX() et MIN()) permettent uniquement la sélection de la valeur la plus élevée ou la plus basse.
Requête pour sélectionner les deux meilleurs scores par nom :
Pour relever ce défi, une requête plus complexe est nécessaire. Voici un exemple de la façon de sélectionner les deux meilleurs scores pour chaque nom dans le tableau fourni :
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2;
Explication :
Exemple de résultat :
La requête ci-dessus renvoie ce qui suit sortie :
NAME SCORE ----------------- willy 2 willy 3 zoe 5 zoe 6
Cette sortie inclut les deux meilleurs scores pour chaque nom dans le tableau, comme demandé.
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!