我尝试了以下查询:
select first_name,last_name,salary,rank() over (order by salary) as Rank from employees order by Rank
我收到以下错误:
第1行的错误1064(42000):SQL语法出错;查看与您的MySQL服务器版本对应的手册,以获得正确的语法,使用“按工资排序”作为员工排名,按排名第1行排序
最简单的实现是 row_number() ,而不是 rank() . 也许这对你有用:
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() 这有点棘手 .
1 回答
最简单的实现是
row_number()
,而不是rank()
. 也许这对你有用:如果你特别需要
rank()
这有点棘手 .