MySQL : 如何统计结果在Select中的位置?
MySQL : How to count the position of the results in a Select?
我需要计算结果在 Select 中的位置 - 就像排名一样。
我有这个:
"SELECT PLAYERID, SUM(POINTS) AS POINTS FROM TABLE1 GROUP BY PLAYERID ORDER BY POINTS"
我明白了:
PLAYERID POINTS
4 200
2 150
1 100
3 80
我需要知道 PlayerID = 1 在排名中的位置。
我不是 MySQL 方面的专家 - 但可以这样计算结果:
RK PLAYERID POINTS
1 4 200
2 2 150
3 1 100
4 3 80
类似于:"SELECT COUNT..."
非常感谢!
丹尼尔
编辑:它没有重复,因为我不想创建排名。我想计算结果的位置。这里提出的答案符合 100%。
您可以尝试计算玩家 id = 1 点处点 >= 的行数
select count(*) from (
SELECT PLAYERID
, SUM(POINTS) AS POINTS
FROM TABLE1
GROUP BY PLAYERID
) T
WHERE T.POINT >= (
SELECT SUM(POINTS)
FROM TABLE1
WHERE PLAYERID = 1
)
我需要计算结果在 Select 中的位置 - 就像排名一样。
我有这个:
"SELECT PLAYERID, SUM(POINTS) AS POINTS FROM TABLE1 GROUP BY PLAYERID ORDER BY POINTS"
我明白了:
PLAYERID POINTS
4 200
2 150
1 100
3 80
我需要知道 PlayerID = 1 在排名中的位置。
我不是 MySQL 方面的专家 - 但可以这样计算结果:
RK PLAYERID POINTS
1 4 200
2 2 150
3 1 100
4 3 80
类似于:"SELECT COUNT..."
非常感谢! 丹尼尔
编辑:它没有重复,因为我不想创建排名。我想计算结果的位置。这里提出的答案符合 100%。
您可以尝试计算玩家 id = 1 点处点 >= 的行数
select count(*) from (
SELECT PLAYERID
, SUM(POINTS) AS POINTS
FROM TABLE1
GROUP BY PLAYERID
) T
WHERE T.POINT >= (
SELECT SUM(POINTS)
FROM TABLE1
WHERE PLAYERID = 1
)