1

我有两张桌子..

人员:

empid(primary key)
firstname
lastname
email

细节:

Did(primary key)
salary
designation
empid

现在我想选择薪水第三高的员工中的, firstnamelastnamesalary

另外,如果您能建议我一个网站,我可以在其中找到带有解决方案的 SQL 查询练习(我不需要在线解释器,我有 SQL Server 2008 可以练习),我已经完成了 w3schools(这很棒)但是我现在需要练习,我尝试了 sql.ex.ru,但没有那么有用。

4

4 回答 4

2
 select firstname, lastname, salary 
 from 
 (
 select 
    employee.*, details.salary,
    row_number() over (order by salary desc) salaryrank
 from 
      employee
 inner join 
      details
           on employee.empid = details.empid
 ) v
 where salaryrank=3

至于 SQL 问题的解决方案,为什么不看看 stackoverflow 本身呢?找一个问题,看看你怎么能得到答案。然后看看评分最高的答案是什么

于 2012-08-31T10:13:56.087 回答
1

假设您有具有以下字段值的表

在此处输入图像描述

细节

在此处输入图像描述

现在如果你想找到第三高的薪水。那么,下面的查询会给你下面的结果集。

在此处输入图像描述

输出:

在此处输入图像描述

于 2013-07-31T21:18:31.803 回答
0
SELECT 
    p.firstname,
    p.lastname, 
    d.salary 
FROM 
    Persons p,
    Details d 
where 
    p.empid=d.empid  
order by 
    d.btID desc 
limit 2,1;
于 2012-08-31T10:27:48.940 回答
0

在下面找到答案。

select * from empsal e where
3 =(select count(distinct empsal) from empsal where e.empsal<=empsal);

如果您需要第二个最高工资,请将“3”替换为“2”。

于 2012-08-31T10:17:13.647 回答