我如何使用MYSQL找到第二大薪水

我如何使用MYSQL找到第二大薪水,mysql,sql,Mysql,Sql,我将如何从Employee表中的所有员工中查询第二大薪资?在MySQL中试试这个,它应该可以工作 SELECT name, salary FROM employees WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees)) 或者你也可以试试这个 /* looking for 2nd highest salary -- notice the '

我将如何从Employee表中的所有员工中查询第二大薪资?在MySQL中

试试这个,它应该可以工作

SELECT name, salary
FROM employees
WHERE salary = (SELECT MAX(salary) FROM employees WHERE salary < (SELECT MAX(salary) FROM employees))
或者你也可以试试这个

/* looking for 2nd highest salary -- notice the '=2' */
SELECT name,salary FROM employees
WHERE salary = (SELECT DISTINCT(salary) FROM employees as e1
WHERE (SELECT COUNT(DISTINCT(salary))=2 FROM employees as e2
WHERE e1.salary <= e2.salary)) ORDER BY name

按薪资降序排序,然后使用限额:

第一个1表示跳过第一行,第二个1表示返回一行。

您可以在下面尝试-

  select name, max(salary) from employee where salary < (select max(salary) from employee)
    group by name;

如果没有谷歌,你不能在这里问你一个面试问题。领带呢?也就是说,如果有两个或两个以上具有相同的最高工资。按工资描述限制排序1,1您可以使用查询
  select name, max(salary) from employee where salary < (select max(salary) from employee)
    group by name;