选择十大员工薪水

时间:2015-09-29 22:01:47

标签: mysql sql phpmyadmin

我有一个员工工资数据库。

以下是Salaries表格字段:

emp_no INT(11)
salary INT(11)
from_date DATE
to_date DATE

我正在努力获得前十名员工工资,非重复员工。使用下面的代码,我可以获得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相匹配的日期值,但在考虑一下之后,它就没有意义。

非常感谢任何有关如何获取正确日期值的帮助。

1 个答案:

答案 0 :(得分:1)

第一张表格将包含前十名薪水。

然后检查原始表格以查看与emp_nosalary匹配的行以获取日期。

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