Задать вопрос
@roninnitr

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

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

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

Похожие вопросы
ITK academy Краснодар
от 220 000 до 300 000 ₽
ITK academy Краснодар
от 75 000 ₽
DimaTech Ltd Краснодар
от 140 000 до 140 000 ₽