我有两张桌子..
人:
empid(primary key)
firstname
lastname
email
详细说明:
Did(primary key)
salary
designation
empid
现在,我想选择薪水第三高的员工firstname
,lastname
,salary
。
如果你能建议我找到一个可以找到解决方案的SQL查询练习的网站(我不需要一个在线翻译,我有SQL Server 2008来练习),那也很棒,我已经完成了w3schools(这是真棒)但我现在需要练习,我试过sql.ex.ru但它没有那么有用。
答案 0 :(得分: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本身?找一个问题,看看你如何得到答案。然后看看评分最高的答案是什么
答案 1 :(得分:1)
假设您有包含以下字段值的表
<强>人强>
<强>详情
现在,如果你想找到第三高薪。那么,下面的查询会给你以下结果集。
<强>输出:强>
答案 2 :(得分:0)
在下面找到答案。
select * from empsal e where
3 =(select count(distinct empsal) from empsal where e.empsal<=empsal);
如果您需要第二个最高薪水,请将'3'替换为'2'。
答案 3 :(得分: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;