Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带分页的MySQL排名_Mysql_Sql_Ranking - Fatal编程技术网

带分页的MySQL排名

带分页的MySQL排名,mysql,sql,ranking,Mysql,Sql,Ranking,我有一个SQL查询,看起来像: SELECT member_id, Count(*) AS '# of Rounds' FROM score,cup_point WHERE session_id =? AND tour_id =? AND cup_point_id = `cup_point`.id GROUP BY member_id ORDER BY Sum(points) DESC LIMIT 50 offset 0 如何在查询中包含排名,以便:

我有一个SQL查询,看起来像:

SELECT member_id, Count(*) AS '# of Rounds'
FROM   score,cup_point
WHERE  session_id =?
       AND tour_id =?
       AND cup_point_id = `cup_point`.id
GROUP  BY member_id
ORDER  BY Sum(points) DESC
LIMIT  50 offset 0 
如何在查询中包含排名,以便:

  • 我得到一个返回列,其中包含一个基于分数的数字,即
    总和(点数)
    ,因此最高分数的排名为1,以此类推
  • 当使用偏移量和限制分页时,或者甚至当我按成员id筛选时,我仍然可以获得该成员的正确排名(
    member\u id
    ) ?

  • 谢谢。

    可能有子查询和运行计数器

    SET @x = 0;
    SELECT member_id,NumRounds AS '# of Rounds',@x:=(@x+1) Rank FROM
    (
    SELECT member_id, Count(*) AS NumRounds
    FROM   score,cup_point
    WHERE  session_id =?
           AND tour_id =?
           AND cup_point_id = `cup_point`.id
    GROUP  BY member_id
    ORDER  BY Sum(points) DESC
    LIMIT  50 offset 0 
    ) A;
    

    试试看