【发布时间】:2020-02-03 18:39:44
【问题描述】:
假设我的表中有这些日期值:
#1 2019-01-01
#2 2019-02-01
#3 2019-03-01
#4 2019-05-01
#5 2019-06-01
#6 2019-06-15
#7 2019-07-01
我只需要保留与前一个“好”日期相差 2 个月的日期。
所以,我开始:
#1 是第一个,我把它当作一个好的。
#2只有一个月的间隔,所以不好。
#3 与 #1 相差两个月(我忽略了 #2,因为它不好)。
#4 距离 #3 两个月,所以我保留它
#5 不好,因为距离#4 只差一个月
#6不好,因为距离#4只有一个半月的时间(#5因为不好所以被忽略)。
#7 很好,因为它距离最后一个好的 #4 相距两个月。
有没有一种简单、干净的方法来做到这一点?
我从 dense_rank() over 开始,并将它们与之前的排名进行比较,但我不知道如何忽略糟糕的日期。
【问题讨论】:
-
用您正在使用的数据库标记您的问题。
标签: sql comparison teradata ranking