我尝试了以下查询:
select first_name,last_name,salary,rank() over (order by salary) as Rank
from employees
order by Rank
我收到以下错误:
第1行的错误1064(42000):您的SQL语法出错;检查与您的MySQL服务器版本相对应的手册,以便在'(按工资排序)附近使用正确的语法作为Rank
来自员工 排名第1行的排名
答案 0 :(得分: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()
,这有点棘手。