我有一个名为“ SYS_CREAT_TS ”的专栏。我希望查询获取状态代码为2的REV数据以及状态代码为2的最新时间戳。
SELECT RVSN FROM DATA_STUS WHERE DATA_STUS_CD = 2 AND SYS_CREAT_TS IN MAX(SYS_CREAT_TS);
更多细节
没有最新的时间戳比较查询。我的版本号(RVSN)为2446,2442。
但是我想要这两个时间戳之间的最新时间戳和它们各自的修订号。
第二个是最新的。我正在使用Oracle 12C。因此,查询结果应为 2446 。
答案 0 :(得分:1)
这将有效:
select rvsn
from (
select rvsn, row_number() over (order by sys_creat_ts desc) as rn
from data_stus
where data_stus_cd = 2
) where rn = 1;
答案 1 :(得分:0)
with x as (select *, row_number() over(order by SYS_CREAT_TS desc) as rn
from DATA_STUS)
SELECT RVSN FROM x
WHERE rn =1 and DATA_STUS_CD = 2
如果数据需要按列进行分区,请将其添加到over
子句中,以便获得所需的结果。
答案 2 :(得分:0)
SELECT RVSN
FROM DATA_STUS
WHERE DATA_STUS_CD = 2
AND SYS_CREAT_TS = (SELECT MAX(SYS_CREAT_TS)
FROM RVSN
WHERE DATA_STUS_CD = 2)
这样的事情能解决你的问题吗?