SQL - 在统计中的位置

SQL - Position in statistics

例如,我有 table 列:

playerName TEXT,
score INTEGER

我在这个 table 中有 10,000 行。 现在我可以 select 例如使用简单的 SQLite 查询排名前 100 位的玩家:

SELECT playerName FROM table ORDER BY score DESC LIMIT 100

现在我有一个问题:如何获得不在前 100 名的玩家 X 在统计中的位置? 我可以通过 selecting 所有行然后在循环中找到玩家 X 的位置来做到这一点,但我认为它没有很好的表现。 在 SQLite 和 MySQL 中有更简单的方法吗?

您可以数一数得分较大的玩家有多少人:

SELECT COUNT(*)
FROM MyTable
WHERE score >= (SELECT score
                FROM MyTable
                WHERE playerName = 'X');

(如果您想知道所有玩家的情况,单个查询会更有效率。)