【问题标题】:MySQL : How to count the position of the results in a Select? [duplicate]MySQL:如何计算结果在 Select 中的位置? [复制]
【发布时间】:2019-12-14 17:04:51
【问题描述】:

我需要计算结果在 Select 中的位置 - 比如 RANKING。

我有这个:

"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...”

tks 很多! 丹尼尔

编辑:它没有重复,因为我不想创建排名。我想计算结果的位置。此处提出的答案符合 100%。

【问题讨论】:

  • 你的mysql版本是什么
  • 发布的副本有针对 MySQL5.x 和 MySQL 8+ 的解决方案

标签: mysql count ranking


【解决方案1】:

您可以尝试在 playerid = 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
)

【讨论】:

  • 感谢您的时间和专业知识@scaisEdge!工作 100% - 问题解决了! :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多