@roninnitr

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

Не понимаю как прийти от первой таблицы ко второй. Кажется как-то оконные функции надо использовать, но вызыввает сложности это: 1)в зависимоти от мазагина promo_id тоже должен заново считаться и 2) как сформировать столбец promo_id по непрерыным периодам ?
кто-то сталкивался с похожей задаче? Очень признателен буду если подскажите, что посмотреть66577d7fab544784712538.png
66577e2ddf2cf812149985.png
  • Вопрос задан
  • 148 просмотров
Пригласить эксперта
Ответы на вопрос 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 200 000 ₽
Гринатом Москва
от 150 000 ₽
DIGITAL SECTOR Краснодар
от 150 000 до 250 000 ₽