使用PLSQL,我有一个包含大量数据的表,其中一个字段是时间,例如,它是连续的
time
2022/1/1
2022/1/2
2022/1/3
2022/1/4
.....
2023/1/1
2023/1/2
2023/1/3
.....
当数据量很大时,如何快速找到例如生成断点的时间数据
2023/2/1
2023/2/4
2023/2/2 2023/2/3这两个数据都是缺失的数据,怎么样才能快速找到它们?
我想到了两个方法。第一个是视觉检查。少量的数据是可以的,但是大量的数据太容易出错。第二个是对时间字段进行处理,截取年和月进行分组,然后检查每个月的数据。天数是否相同
time count
2022/1 31
2022/2 28
...
但我认为这两种方法都不太好。我不知道是否有更好的方法。如果你能帮助我,我将非常感激
3条答案
按热度按时间pwuypxnk1#
你可以按如下方法来做
1.创建一个存储连续日期的表。
1.左外连接此表的日期列与您正在检查日期的表的日期列。
--未经测试
velaa5lx2#
也可以使用解析函数LEAD():一个洞是当LEAD(time)<> time + 1时,假设你的时间列是一个没有小时的DATE,如果不是,你可能需要CAST/CONVERT和TRUNC。如果需要[start;结束]的缺失范围。
gmol16393#
使用
LAG
或LEAD
: