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;
我有一个 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;