способ проверить, перекрываются ли два интервала в Амазонке Афина / Престо - PullRequest
0 голосов
/ 01 ноября 2018

Мне интересно, можем ли мы проверить, перекрываются ли две даты в Амазонке Афина (при написании запроса Афины). Я могу сделать это в R / Python, используя int_overlaps и функцию интервала. например, ниже int_overlaps (интервал (LeadStart, LeadEnd), интервал (MinStartDate, MaxEndDate)))

Min, Max, Lead - это просто стандартные функции R, примененные к столбцу в dataframee.g Minstartdate <- Min (startdate) </p>

Я хотел бы повторить тот же процесс в Амазонке Афина, где у меня есть два интервала дат, и проверить, не перекрываются ли они, если они есть, я бы хотел, чтобы в новом столбце был логический результат 1 или 0 (например, mutate). функция в R, которая помещает 1 или 0, если даты перекрываются или нет)

Спасибо Харис

1 Ответ

0 голосов
/ 05 ноября 2018

Предполагая, что LeadStart <= LeadEnd и MinStartDate <= MaxEndDate, выражение SQL проверяет, что даты перекрываются:

NOT (LeadEnd < MinStartDate OR MaxEndDate < LeadStart)

т.е. на английском языке: НЕ (первый закончился до второго запуска ИЛИ второй закончился до первого запуска).

Эквивалентное выражение (в зависимости от того, что вы предпочитаете):

LeadEnd >= MinStartDate AND MaxEndDate >= LeadStart
...