#sql #database #oracle
Вопрос:
Мне нужно запрограммировать запрос, в котором я смогу увидеть изменения, внесенные в определенные поля за определенный период времени. Пример: Из таблицы CAM_CONCEN приведите те записи, в которых номер УЧЕТНОЙ записи подвергается изменению в поле «КОНТАКТ» за 6 месяцев до даты. Я был бы признателен, если бы вы могли направить меня.
Комментарии:
1. Как вы отслеживаете изменения в столбце? Используете ли вы встроенный аудит? Триггер, записывающий данные в таблицу истории? Запись триггера в общую таблицу аудита? Что-то еще?
Ответ №1:
Вы можете использовать LAG()
для просмотра предыдущей строки определенного подмножества строк (в данном случае той же учетной записи).
Например:
select * from ( select c.*, lag(contact) over(partition by account_number order by change_date) as prev_contact from cam_concen c ) x where contact lt;gt; prev_contact
Комментарии:
1. спасибо, все прошло успешно.