【发布时间】:2015-05-08 10:23:02
【问题描述】:
如何使用sql查询从表中找出第三高的薪水? 请通过显示查询来举例说明
【问题讨论】:
-
显示表格字段:从员工中选择 MAX(salary);
-
请添加您的表结构、示例数据、预期输出和您遇到的查询。
标签: sql
如何使用sql查询从表中找出第三高的薪水? 请通过显示查询来举例说明
【问题讨论】:
标签: sql
select MIN(salary) from employes where salary in
(select TOP 3 salary from employes order by salary desc)
【讨论】:
您可以使用 CTE 和 Row_Number 获得第三高的薪水
WITH CTE AS
(
SELECT EmpID,EmpName,EmpSalar,
RN = ROW_NUMBER() OVER (ORDER BY EmpSalary DESC)
FROM dbo.Salary
)
SELECT EmpID,EmpName,EmpSalar
FROM CTE
WHERE RN = 3
【讨论】:
ROW_NUMBER是最好的选择!
SQL Server 中工作,但在 MySql 中不起作用 :)
使用标准 SQL,您可以:
select salary
from (select distinct salary
from table t
) t
order by salary desc
offset 2
fetch next 1 row ;
【讨论】:
select Max(salary)
from data t3
where t3.salary <
(
select Max(t1.salary)
from data t1
where t1.salary < (select
Max(t2.Salary)
from data t2)
)
【讨论】: