John 100'2017年1月10日'
John 200 '20 -Jan-2017'
John 50'2018年1月20日'
Tom 100'2017年1月10日'
Tom 200 '20 -Jan-2017'
Alice 100 '10 -Jan-2017'
Alice 200 '20 -Jan-2017'
如何在2018年4月1日获得薪水大于100的人?
谢谢
答案 0 :(得分:0)
一种方法是使用row_number()
:
select t.*
from (select t.*,
row_number() over (partition by name order by datechanged desc) as seqnum
from t
where datechanged <= date '2018-04-01'
) t
where seqnum = 1 and salary > 100;
这将选择截止日期之前的所有行。然后枚举它们,并选择日期最高的一个,并比较薪水。
这假定表中有第一笔薪水。