Как посчитать потраченную сумму за последний месяц в SQL?
У меня есть таблица transaction_details:
transaction_id | customer_id | item_id | item_number | transaction_dttm |
---|---|---|---|---|
7765 | 1 | 23 | 1 | 2022-01-15 |
1254 | 2 | 12 | 4 | 2022-02-03 |
3332 | 3 | 56 | 2 | 2022-02-15 |
7658 | 1 | 43 | 1 | 2022-03-01 |
7231 | 4 | 56 | 1 | 2022-01-15 |
7231 | 2 | 23 | 2 | 2022-01-29 |
Мне необходимо сформировать таблицу следующего вида customer_aggr::
customer_id | amount_spent_lm | top_item_lm |
---|---|---|
1 | 700 | glasses |
2 | 20000 | notebook |
3 | 100 | cup |
При расчете необходимо учитывать актуальную цену на момент совершения транзакции (таблица dict_item_prices). Клиенты, не совершавшие покупок в последний месяц, в итоговую таблицу не попадают. Последний месяц определяется как последние 30 дней на момент построения отчета.
Таблица dict_item_prices:
item_id | item_name | item_price | valid_from_dt | valid_to_dt |
---|---|---|---|---|
23 | phone 1 | 1000 | 2022-01-01 | 2022-12-31 |
12 | notebook | 5000 | 2022-01-02 | 2022-12-31 |
56 | cup | 50 | 2022-01-02 | 2022-12-31 |
43 | glasses | 700 | 2022-01-01 | 2022-12-31 |
Источник: Stack Overflow на русском