Я пытаюсь запустить запрос в Amazon Athena, где я суммирую последовательность транзакций по идентификатору до определенной даты. Указанная дата дает баланс на данный момент времени. Для каждого идентификатора мне нужно включить самую первую транзакцию, чтобы получить правильный баланс. Данные структурированы как
ID | Amount | Created
________________________
378218 -450.00 2018-09-27
378218 4500.00 2018-09-27
260709 899.00 2018-09-27
70791 -719.96 2018-09-27
70791 -65.00 2018-09-19
70791 -3.16 2018-09-07
70791 3.16 2018-09-07
70791 61.84 2018-09-01
70791 -61.84 2018-09-01
70791 -65.00 2018-08-16
70791 -61.84 2018-08-01
Достаточно легко получить баланс всех ID на одну конкретную дату:
SELECT SUM(amount), ID, created
FROM db.table where created<'2018-10-01'
GROUP BY ID
Это дает следующий результат:
ID | Amount | Created
________________________
70791 344.10 2015-09-27
260709 899.00 2018-09-27
378218 0.00 2018-09-27
Вышеупомянутый запрос дает мне остатки на 30 сентября. Однако как это достигается для нескольких точек за раз в одном запросе, например, для последнего дня месяца за последние 12 месяцев? Я знаю, что вы можете использовать временные таблицы и т. Д., Но я не очень знаком с этим.
Заранее спасибо.