Мне было интересно, существует ли эффективный способ группировки данных, перекрывающих временные рамки. Моя основная цель в освоении этого упражнения - запросить следующую таблицу:
transaction_date | item_type | profit
'dd/mm/yy' "" ''
пример:
transaction_date | item_type | profit
03/01/2018 Book 2
03/05/2018 Book 5
04/05/2018 Book 6
03/06/2018 Misc. 20
И получить
(1) Группировка по неделям, илет, поэтому запрос имеет столбцы год |date
Это уже было успешно выполнено , просто используя group by со следующими строками
to_char(transaction_date, 'YY'), to_char(transaction_date, 'WW')
, которые вместе с некоторыми другими желаемыми группировками для item_type и профита дают
year | week | item_type | profit
18 17 Book 2
18 18 Book 11
18 22 Misc 20
(2) Дополнительный столбец, в котором указана прибыль за последние 4 недели (если запись на 7-й неделе, это будут итоги за 3-6 недель, а не ровно 4 недели назад).)
year | week | item_type | profit | profit_last4wks
18 17 Book 2 0
18 18 Book 11 2
18 22 Misc 20 0
Этот шаг - проблема , так как в настоящее время я очень озадачен тем, как подойти к нему и с чего начать в качестве первого шага. Любые предложения или указания в правильном направлении были бы очень полезны.
У меня была идея сделать шаги (1) и (2) в отдельных запросахи присоединиться тогда, но даже получение (2) отдельно поставило меня в тупик. Я также подумал, что сначала можно получить (1) , а затем каким-то образом добавить нужный столбец.