0

我有一个由日期列组成的表

在此处输入图像描述

我还需要选择此列我需要选择不存在于数据库中的上一个日期(如果存在)或当前数据

我尝试了以下查询

select hst1.QUERYID,hst1.starttime, 
ZEROIFNULL(hst2.starttime) as delta
from dbqlogtbl_dba_hst hst1
left outer join dbqlogtbl_dba_hst hst2 on 
hst1.QUERYID = hst2.QUERYID;

我在获取结果时遇到错误

在此处输入图像描述

4

1 回答 1

0

你似乎只是想要lag()

select hst1.QUERYID, hst1.starttime,
       lag(hst1.starttime) over (order by hst1.starttime)
from dbqlogtbl_dba_hst hst1 left join
     dbqlogtbl_dba_hst hst2
     on hst1.QUERYID = hst2.QUERYID ;

我猜你真的想要这个queryid,所以你需要partition by

       lag(hst1.starttime) over (partition by hst1.QUERYID order by hst1.starttime)
于 2018-11-13T12:33:43.340 回答