检查两个间隔是否在亚马逊Athena / Presto中重叠的方法

时间:2018-11-01 18:30:10

标签: sql rstudio amazon-athena presto

我想知道我们是否有办法检查亚马逊雅典娜中的两个日期是否重叠(编写雅典娜查询时)。我可以使用int_overlaps和interval函数在R / Python中执行此操作。 例如下面 int_overlaps(interval(LeadStart,LeadEnd),interval(MinStartDate,MaxEndDate)))

Min,Max,Lead只是应用于数据帧中列的标准R函数。gMinstartdate <-Min(startdate)

我想在有两个日期间隔的亚马逊雅典娜中重复相同的过程,并检查它们是否重叠,如果它们重叠,我希望在新列中输入1或0的布尔结果(例如mutate) R中的函数,如果日期重叠或不重叠,则放置1或0)

谢谢 哈里斯

1 个答案:

答案 0 :(得分:0)

假设LeadStart <= LeadEndMinStartDate <= MaxEndDate,则检查日期重叠的SQL表达式为:

NOT (LeadEnd < MinStartDate OR MaxEndDate < LeadStart)

即英文:NOT(第一个在第二次开始之前结束或第二个在第一次开始之前结束)。

等效表达式(以您喜欢的为准):

LeadEnd >= MinStartDate AND MaxEndDate >= LeadStart