Teradata / SQL: как сравнивать даты в последовательных строках с помощью teradata SQL и записывать регистр в результат - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно сравнить дату (конец dt) в 1-й строке с датой (strt dt) в строке secord, если она совпадает, мне нужно забрать strt dt 2-й строки.если это не совпадает, мне нужно забрать sttt dt 1-го ряда.Может быть несколько строк для одной подписки и пакета канала.Я испытываю трудности при написании запроса в teradata для получения желаемого результата.

Ниже приведены случаи и ожидаемые результаты.

Дело 1

Subscription    Channel package Start dt    End dt
11111112    Sports  7/3/2015    11/28/2015
11111112    Sports  4/1/2016    11/23/2016
11111112    Sports  11/23/2016  12/17/2017

Требуется вывод

Subscription    Channel package Start dt    End dt
11111112    Sports  4/1/2016    12/17/2017

Дело 2

Subscription    Channel package Start dt    End dt
11111112    Sports  7/3/2015    11/28/2015
11111112    Sports  11/28/2015  4/1/2016
11111112    Sports  4/1/2016    11/23/2016
11111112    Sports  11/23/2016  12/17/2017

Требуется вывод

Subscription    Channel package Start dt    End dt
11111112    Sports  7/3/2015    12/17/2017

Я попробовал это, используя

MIN(Start dt) OVER (PARTITION BY Subscription   , Channel package   
                    ORDER BY Start dt ROWS BETWEEN 1 FOLLOWING  AND 1 FOLLOWING
                   ) AS NXT Start dt

Но не смог пойти дальше, так как столкнулся с некоторыми проблемами при использовании квалификации.

...