如时间字段1,从2022-07-13 00:00:00到2022-07-13 02:00:00有10行数据升序排序,用这个字段计算得到字段2:字段2的第一行直接等于字段1的第一行,第二行开始用计算得到:字段1的第二行减去字段2的第一行大于五秒,则选择字段1第二行,否则选字段2第一行保存至字段2第二行,以此类推,直到字段1第n行和字段2第n-1行计算完毕
5条回答 默认 最新
- 坤坤不爱吃鱼 2022-07-16 16:56关注
使用窗口函数dt,lead(dt) over(order by dt),这个是下移,然后在进行判断,为空去dt的值
dt日期默认升序 2022-07-13 00:00:00 2022-07-13 00:00:06 2022-07-13 00:00:11 2022-07-13 00:00:14 2022-07-13 00:04:00 2022-07-13 00:04:05 2022-07-13 00:04:07 2022-07-13 00:04:32 2022-07-13 01:33:07 2022-07-13 01:33:10 with TMP as (select dt,lead(dt,1) over(order by dt) tmp_dt from tabe1) select dt,case when tmp_dt is null then dt when EXTRACT(EPOCH FROM (tmp_dt - dt))>5 then tmp_dt else dt end dt2 from TMP
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录