Ряд за обработкой строк в SQL - PullRequest
0 голосов
/ 12 марта 2019

Я использую Hive SQL сервер.В моей базе данных я пытаюсь удалить записи, у которых разрыв с предыдущей записью составляет менее 7 дней, но при удалении записи я хочу проверить разрыв с «предыдущей сохраненной записью», а не с любой предыдущей записью.

Snapshot of the database:

Я хочу сохранить все записи, отмеченные как 1, в частности Рек. № 7 Хотя разрыв 7-й записи составляет <7, так как предыдущая запись удаляется, разрыв 7-й с 5-йстановится 8. </p>

1 Ответ

1 голос
/ 12 марта 2019

Вы можете использовать совокупный максимум:

select t.*
from (select t.*,
             max(case when retained = 1 then intdate end) over (order by intdate rows between unbounded preceding and 1 preceding) as prev_intdate
      from t
     ) t
where prev_intdate is null or
      prev_intdate > dateadd(intdate, 7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...