试图在mysql中找到第三低的工资

问题描述 投票:0回答:4

我正在使用嵌套 SQL 查询来查找第三低的工资,但该查询没有显示员工的正确姓名,而是显示给出了工资最高的员工姓名和第三低的工资。这是我的询问。

SELECT first_name, MIN(salary)
  FROM employee
 WHERE salary > (SELECT min(salary) 
                 FROM employee
                 WHERE salary > (SELECT min(salary)
                 FROM employee)
                ); 
mysql sql
4个回答
1
投票

您可以使用

OFFSET/LIMIT
获得第三低的值:

SELECT first_name, salary
  FROM employee
 WHERE salary
ORDER BY salary
LIMIT 1 OFFSET 2

您的原始查询不起作用的原因,首先,您的选择是:

SELECT first_name, MIN(salary)

这意味着这里有一个隐含的“将所有内容分组”,MySQL 将

first_name
解释为
ANY(first_name)

而且,这样做效率极低。


0
投票
SELECT firstname, salary 
FROM employees 
ORDER BY salary ASC 
OFFSET 2 LIMIT 1;

0
投票

选择“名字”,MIN(薪水) AS LowestSalary 来自学生;

它对我有用......


-1
投票

选择数据并按薪资升序排列。最低工资将是第一行,因此将结果限制为只有一行,即工资最低的人!

SELECT first_name, salary
FROM employee
ORDER BY salery 
LIMIT 1;
© www.soinside.com 2019 - 2024. All rights reserved.