带有ROW_NUMBER()的SQL语法

时间:2015-12-15 18:54:41

标签: android mysql sql

我正在创建一个Android应用程序,我正在使用MySQL。

MySQL表格看起来像

this

我想通过他的qa获得用户的排名,如果我想获得Kenig的排名我会得到1因为他拥有最多的qa(1060)并且如果我想获得Dyrus的排名我会得到3,因为他有最低的qa等。

我在互联网上查找了一个查询,这就是结果

SELECT ip,name,qa,ROW_NUMBER() over (ORDER BY qa) AS Number FROM users ORDER BY qa;

但是当我尝试运行此行时,我收到此错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第7行附近'(ORDER BY qa)AS Number FROM users ORDER BY id'

1 个答案:

答案 0 :(得分:1)

您可以使用此构造获得相同的结果:

set @num=0;

select name, rank FROM (
  SELECT 
    ip,
    name,
    qa,
    @num := @num + 1  as rank
  FROM (
    SELECT * FROM world.test ORDER BY qa DESC
  ) A
) B  WHERE name = 'Kenig';