首页 文章

CoderPad不支持SQL中的排名功能吗?

提问于
浏览
1

我尝试了以下查询:

select first_name,last_name,salary,rank() over (order by salary) as Rank
from employees
order by Rank

我收到以下错误:

第1行的错误1064(42000):SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,使用“按工资排序”作为员工排名,按排名第1行排序

1 回答

  • 0

    最简单的实现是 row_number() ,而不是 rank() . 也许这对你有用:

    select first_name, last_name, salary,
           (@rn := @rn + 1) as Rank
    from employees e cross join
         (select @rn := 0) params
    order by salary;
    

    如果你特别需要 rank() 这有点棘手 .

相关问题