Maison >base de données >tutoriel mysql >Comment pouvez-vous déterminer efficacement le classement des utilisateurs à partir d'un tableau de scores non triés à l'aide de SQL ?
Approche non itérative pour déterminer le classement des utilisateurs à partir d'un tableau de scores
Lorsque vous traitez un tableau de scores non triés, il peut être nécessaire de déterminer le classement d'un utilisateur parmi tous les autres joueurs. Ceci peut être réalisé par diverses méthodes, mais cet article se concentre sur une approche non itérative utilisant SQL.
Comprendre le problème
Le problème nécessite de récupérer le rang d'un utilisateur à partir d'un tableau contenant des partitions et des initiales mais sans aucun ordre. Il est connu qu'il est possible de parcourir la table entière et de la trier, mais l'article explore une solution basée sur SQL plus efficace.
Solution SQL
Le SQL suivant L'instruction résout le problème efficacement :
<code class="sql">SELECT s1.initials, ( SELECT COUNT(*) FROM scores AS s2 WHERE s2.score > s1.score )+1 AS rank FROM scores AS s1</code>
Cette instruction accomplit les étapes suivantes :
Avantages
L'approche non itérative offre plusieurs avantages :
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!