因此,在这种情况下,表中的一列具有多个记录的相同值,但Date
列具有增量值。
ID| PAY_CODE| RATE | Date
---------------------------------
1 | 1111 | 50 | 2017-01-01
2 | 1111 | 50 | 2017-02-01
3 | 1111 | 50 | 2017-03-11
4 | 1111 | 50 | 2017-05-21
如果输入的最新Date
未知,我如何才能打印最新记录?
预期结果:
ID| PAY_CODE| RATE | Date
---------------------------------
4 | 1111 | 50 | 2017-05-21
我需要一个SQL查询,它在内部比较Date
列并返回最高值(在这种情况下是最新日期) - 这是否可能?
答案 0 :(得分:2)
我认为这可以满足您的需求:
select t.*
from t
where t.date = (select max(t2.date) from t t2);
答案 1 :(得分:1)
您可以使用rank
窗口函数:
SELECT id, pay_code, rate, date
FROM (SELECT id, pay_code, rate, date, RANK() OVER (ORDER BY data DESC) AS rk
FROM mytable) t
WHERE rk = 1
答案 2 :(得分:0)
select t.*
from ( select * from table order by date desc) t
where rownum < 2
答案 3 :(得分:0)
我认为您应该使用SELECT * FROM YOUR_TABLE T WHERE T.DATE = ( SELECT MAX(DATE) FROM YOUR_TABLE)
这样确保获取最新结果,使用TOP
的其他解决方案无法按预期工作