В Tableau / SQL как я могу получить максимум набора значений, когда данные в формате, не совместимом с функциями Windows? - PullRequest
0 голосов
/ 22 октября 2019

Это мои входные данные:

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) Я использовал оконные функции, чтобы получить максимум из трех предыдущих записей - но проблема в том, что он получаетмакс по частям, а также вызывает проблемы.

...