Это мои входные данные:
Part Year_Q Sales
A 2018Q4 10
A 2019Q1 13
A 2019Q2 25
A 2019Q3 5
A 2019Q4 7
B 2018Q4 5
C 2019Q4 10
D 2018Q4 5
D 2019Q1 10
D 2019Q2 15
D 2019Q3 20
D 2019Q4 25
Для каждой части и соответствующего квартала я бы хотел получить максимум продаж за последние три квартала. Вот желаемый результат: (Обратите внимание, что есть кварталы, добавленные с продажами = 0, и случаи, когда Max_last3Qs - это когда доступно менее 3 кварталов данных о продажах.)
Part Year_Q Sales Max_last3Qs
A 2018Q4 10 -
A 2019Q1 13 -
A 2019Q2 25 25
A 2019Q3 5 25
A 2019Q4 7 25
B 2018Q4 5 -
B 2019Q1 0 -
B 2019Q2 0 5
B 2019Q3 0 0
B 2019Q4 0 0
C 2018Q4 0 -
C 2019Q1 0 -
C 2019Q2 0 0
C 2019Q3 0 0
C 2019Q4 10 10
D 2018Q4 5 -
D 2019Q1 10 -
D 2019Q2 15 15
D 2019Q3 20 20
D 2019Q4 30 30
Что я пытался сделать, такfar:
1) Я попытался добавить недостающие кварталы, используя базовый код SQL, где я использовал полное внешнее объединение, чтобы получить четные кварталы, где не было продаж, и сделал их 0 (так что вы можетепредположим, у вас уже есть недостающие кварталы с 0 продажами в вашем решении.)
2) Я использовал оконные функции, чтобы получить максимум из трех предыдущих записей - но проблема в том, что он получаетмакс по частям, а также вызывает проблемы.