Поскольку вам нужно преобразовать таблицу в раздел, но хранить только записи, у которых разница дат превышает 7 с предыдущей записью, если возможно, я предлагаю вам удалить ненужные записи, если это возможно.
Вы будетенужно сравнить соседние строки, поэтому вы можете использовать функцию lag()
или lead()
.
https://oracle -base.com / Articles / Misc / Lag-Lead-Analytic-functions
Я думаю, что следующий запрос может помочь:
SELECT pk, A1, A2, A3, A4, a_date
FROM (SELECT PK, A1, A2, A3, A4, a_date,
LAG (a_date, 1, 0) OVER (ORDER BY A1, A2, A3, A4, a_date DESC) AS date_prev,
a_date - LAG (a_date, 1, 0) OVER (ORDER BY A1, A2, A3, A4, a_date DESC) AS date_diff
FROM tbl1)
WHERE date_diff < 7
Это записи, которые вы можете удалить.
Затем вы можете создать секционированную таблицу - разделение на основе списка- на основе структуры вашей таблицы, а затем вставьте в select.