2

重複の可能性:
Mysql ランク関数

MySQL に次のテーブルがあります。

===================================================================
id  | member|  total_correct_question | time_taken_in_seconds |

===================================================================
1   |  abc  |     2                    |       4              |
2   |  def  |     3                    |       6              |
3   |  ghi  |     3                    |       4              |
4   |  jkl  |     3                    |       5              |
====================================================================

mysqlクエリから各ユーザーのランクを表示したい。誰でもこれについてのクエリを提案できますか?

4

2 に答える 2

1

これを試して:

  SELECT @i:=@i+1 AS rank,a.*
  FROM
      (SELECT * 
       FROM   Your_table  
       ORDER BY total_correct_question DESC,
                time_taken_in_seconds)a,(SELECT @i:=0) r  


SQL フィドルのデモ

于 2012-09-22T05:46:15.057 に答える
1

元のクエリからデカルト積を生成するサブクエリを作成できます。最も興味深いのは、それを 1 ずつインクリメントできることです (結果は RANK Number になります)。

SELECT    @rankNo:=@rankNo+1 RankNo,
          a.*
FROM      Table1 a, (SELECT @rankNo:=0) r 
ORDER BY `total_correct_question` DESC,
         `time_taken_in_seconds` ASC

SQLFiddle デモ

于 2012-09-22T05:51:53.387 に答える