【问题标题】:SQL MAX and LIMITSQL MAX 和 LIMIT
【发布时间】:2018-12-19 19:40:36
【问题描述】:

我想从数据库中写出 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; 

提前感谢您的帮助

【问题讨论】:

  • 这适用于哪个 RDBMS?请添加标签以指定您使用的是mysqlpostgresqlsql-serveroracle 还是db2 - 或者完全是其他东西。
  • 好吧,抱歉这是我的第一篇文章
  • 好的,不用担心 - 但现在请添加该标签 ....

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


【解决方案1】:

试试这个。

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

【讨论】:

    【解决方案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;
    

    【讨论】:

      猜你喜欢
      • 2010-09-30
      • 2016-04-17
      • 1970-01-01
      • 2010-11-12
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多