Я пытаюсь получить последнее значение баланса игрока в определенном временном окне.
У меня есть стол transactions
.
Баланс игрока не является максимальным или минимальным one.
SELECT project_id,
player_id,
FIRST_VALUE(balance) OVER (PARTITION BY player_id ORDER BY event_arrival_time DESC) AS balance
FROM transactions
WHERE event_arrival_time BETWEEN '2019-12-02 00:00:00' AND '2019-12-03 23:59:59'
AND project_id='aaa'
GROUP BY project_id, player_id
Я получаю значения, но если я проверяю их, используя запрос, заданный для одного игрока, я получаю другой баланс и вижу заданный баланс результатов где-то в середине периода.
Кроме того, если я выполню этот запрос несколько раз, у меня будет другой баланс, как будто он выбирает другую транзакцию (речь идет о разнице в 10 минут).
SELECT *
FROM transacitions
where event_arrival_time BETWEEN '2019-12-02 00:00:00' AND '2019-12-03 23:59:59'
AND project_id='aaa' and player_id = 'player1'
ORDER BY event_arrival_time desc
Я хочу получить список игроков за этот период и их последний баланс (не МАКСИМАЛЬНОЕ значение - возможно, максимальная дата).