MySQL ROW_NUMBER 多列

MySQL ROW_NUMBER for multiple columns

我有一个 table 看起来像:

+-------------+--------+------------+
| Employee ID | Salary | Grievances |
+-------------+--------+------------+
| 101         | 70,000 | 12         |
| 102         | 90,000 | 100        |
| ...         | ...    | ...        |
+-------------+--------+------------+

并且我想找到所有在工资 前十名 中,但在申诉方面 后五名 的员工。我(想我)知道如何使用 ROW_NUMBER 在 SQL 服务器中执行此操作,但如何在 MySQL 中执行此操作?我已经看到 goto question 这样做了,但它并不真正适用于多列排序。

如果我没理解错的话,你可以用自连接来做到这一点:

select s.*
from (select t.*
      from t
      order by salary desc
      limit 10
     ) s join
     (select t.*
      from t
      order by grievances asc
      limit 5
     ) g
     on s.employeeid = g.employeeid;