SQL MAX和LIMIT

时间:2018-07-11 17:11:30

标签: sql mariadb greatest-n-per-group

我想从数据库中找到5个收入最高的人,此外,当前必须雇用雇员。

我尝试这样做,但没有成功。

SELECT 
    employees.first_name, employees.last_name, salaries.salary 
FROM 
    employees
INNER JOIN 
    salaries ON employees.emp_no = salaries.emp_no
WHERE 
    (SELECT MAX(salaries.salary) 
     FROM salaries.salary
     WHERE salaries.to_date > '2018-07-10') 
LIMIT 5; 

预先感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您不需要使用subquery

select e.first_name, e.last_name, s.salary
from employees e inner join
     salaries s
     on s.emp_no = e.emp_no
where s.to_date > '2018-07-10'  -- this seems incorrect to me needs to correct
order by s.salary desc
limit 5;

答案 1 :(得分:0)

尝试一下。

SELECT TOP 5
    employees.first_name, employees.last_name, salaries.salary 
FROM 
    employees
INNER JOIN 
    salaries ON employees.emp_no = salaries.emp_no
ORDER BY
    salaries.salary DESC