Obtenir les deux premières lignes de chaque groupe dans SQL
Les requêtes SQL permettent aux utilisateurs d'extraire des données spécifiques des tables, mais que se passe-t-il si vous en avez besoin sélectionner les deux premières lignes de chaque groupe ? Ce scénario peut être rencontré lorsque vous souhaitez analyser les enregistrements les plus performants ou récupérer plusieurs valeurs au sein d'un groupe.
Considérons le tableau suivant à titre d'exemple :
NAME | SCORE |
---|---|
willy | 1 |
willy | 2 |
willy | 3 |
zoe | 4 |
zoe | 5 |
zoe | 6 |
Pour récupérer le les deux scores les plus élevés pour chaque nom, nous pouvons utiliser la requête SQL suivante :
SELECT * FROM test s WHERE ( SELECT COUNT(*) FROM test f WHERE f.name = s.name AND f.score >= s.score ) <= 2
Voici comment la requête fonctionne :
Le résultat attendu pour cette requête est le suivant :
NAME | SCORE |
---|---|
willy | 2 |
willy | 3 |
zoe | 5 |
zoe | 6 |
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!