@roninnitr

Как с помощью оконных функций преобразовать таблицу?

Не понимаю как прийти от первой таблицы ко второй. Кажется как-то оконные функции надо использовать, но вызыввает сложности это: 1)в зависимоти от мазагина promo_id тоже должен заново считаться и 2) как сформировать столбец promo_id по непрерыным периодам ?
кто-то сталкивался с похожей задаче? Очень признателен буду если подскажите, что посмотреть66577d7fab544784712538.png
66577e2ddf2cf812149985.png
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Olteya
Я бы отталкивалась от того, что разница между текущим и предыдущим period_id составляет 1 до смены периода. На строке с period_id = 208 вы получите разницу в 2, в следующий раз на строке с period_id = 211.
Получается, там, где получите значение 2 - это начало нового периода. Предыдущая строка - конец предыдущего периода.
Соответственно вы можете получить таблицу (или CTE) с данными:
period_start period_end row_num
0 206 1
208 209 2
211 214 3
216 218 4
и сджойнить ее с исходной по условию period_start <=period_id (первой табл.)<= period_end.
Может быть не оптимальное решение, но в ночи только это пришло в голову :)
Ответ написан
Комментировать
Доброго времени суток!
Ваша задача известна как "острова данных".
Решение на SQL тут.

66675edf442dd854948220.png
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы