【发布时间】:2022-11-14 20:30:09
【问题描述】:
我正在尝试获取连续 2 年获得加薪的员工,在这种情况下,员工 1000 是正确答案。
这是我尝试过的数据和sql。
| EID | SALARY | YEAR |
|---|---|---|
| 1000 | 10,000 | 2016 |
| 1000 | 7,500 | 2015 |
| 1000 | 6,000 | 2014 |
| 1001 | 8,000 | 2016 |
| 1001 | 7,500 | 2015 |
| 1002 | 7,500 | 2016 |
| 1002 | 7,500 | 2015 |
| 1002 | 5,000 | 2014 |
| 1003 | 6,000 | 2016 |
| 1003 | 7,000 | 2015 |
| 1003 | 5,000 | 2014 |
我使用了以下代码,但是它仅按 EID 获取行号,而不是去年和今年的计算,我需要找到连续 2 年加薪的员工。
select * ,
row_number() over(partition by eid order by salary and year desc)as rn
from gs;
【问题讨论】:
-
哪个版本的 MySQL? MySQL 8+ 具有 MySQL 5.x 中不存在的功能