作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个员工工资数据库。
以下是薪资
表字段:
emp_no INT(11)
salary INT(11)
from_date DATE
to_date DATE
我正在尝试获取薪资最高的 10 名员工,非重复员工。通过下面的代码,我可以获得 emp_no 的最高工资,但我的 from_date 和 to_date 默认为该 emp_no 的最早日期值。
select emp_no, max(salary) as salary, from_date, to_date
from salaries
group by emp_no
order by salary DESC
limit 10
我假设 GROUP BY
会保留与工资和 emp_no
匹配的日期值,但仔细考虑一下,这是没有意义的让它这样做。
任何有关如何获取正确日期值的帮助将非常感激。
最佳答案
第一个表将包含薪资最高的 10 名。
然后检查原始表以查看哪一行与 emp_no
和 salary
匹配以获取日期。
SELECT S.*
FROM
(SELECT emp_no, max(salary) as salary
FROM salaries
GROUP BY emp_no
ORDER BY salary DESC
limit 10
) maxSal
INNER JOIN salaries S
ON maxSal.emp_no = S.emp_no
AND maxSal.salary = S.salary
关于mysql - 评选薪资最高的10名员工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32854499/
我是一名优秀的程序员,十分优秀!