sql/hive агрегировано по дням, затем скользящее среднее
Итак, у меня есть таблица транзакций:
cust_name,transaction_id, timestamp, amount,
bob, 134, 2018-01-01 14:33:20, 10
bob, 125, 2018-01-01 15:32:20, 20
bob, 562, 2018-01-02 06:33:20, 30
bob, 126, 2018-01-02 11:49:10, 5
bob, 897, 2018-01-02 14:33:20, 6
bob, 455, 2018-01-03 05:04:09, 15
bob, 666, 2018-01-03 12:36:44, 40
bob, 990, 2018-01-05 12:35:00, 6
other customers.....
Клиенты совершают транзакции с разной отметкой времени, идентификатор транзакции уникален.
Я хочу для каждой строки рассчитать дополнительные переменные. Например, максимальные или средние ежедневные транзакции за последние 2 дня от этого клиента. Это в режиме реального времени, и я хочу сделать это с помощью одного запроса. Чтобы лучше проиллюстрировать, чего я хочу достичь:
cust_name,transaction_id, timestamp, amount, sum of today,2_day_average, 2_day_max
bob, 134, 2018-01-01 14:33:20, 10, 10+20 = 30, 0 ,0
bob, 125, 2018-01-01 15:32:20, 20, 10+20 = 30, 0 ,0
bob, 562, 2018-01-02 06:33:20, 30, 41 , (30+41)/2,max(30,41)
bob, 126, 2018-01-02 11:49:10, 5, 41 , (30+41)/2,max(30,41)
bob, 897, 2018-01-02 14:33:20, 6, 41 , (30+41)/2,max(30,41)
bob, 455, 2018-01-03 05:04:09, 15, 55 , (41+55)/2,max(41,55)
bob, 666, 2018-01-03 12:36:44, 40, 55 , (41+55)/2,,max(41,55)
bob, 990, 2018-01-05 12:35:00, 6, 6 , (55+6)/2,,max(55,6)
other customers...
Я хотел создать "сумму сегодня", сначала используя сумму по разделу, затем выполнить 2_days_max и 2_days_avg, но мне интересно, есть ли способ сделать это сразу.