## Контекст (таблицы и пример данных) ### Таблицы - `accounts(id, client_id)` - `ledger(tx_id, acco

SQL Developer Senior
## Контекст (таблицы и пример данных) ### Таблицы - `accounts(id, client_id)` - `ledger(tx_id, account_id, tx_time, amount)` > `amount` положительный для поступления, отрицательный для списания. ### Пример данных **accounts** | id | client_id | |---:|----------:| | 1 | 100 | **ledger** | tx_id | account_id | tx_time | amount | |-----:|-----------:|---------------------|------:| | 1 | 1 | 2025-01-01 10:00:00 | 100 | | 2 | 1 | 2025-01-01 12:00:00 | -30 | | 3 | 1 | 2025-01-02 09:00:00 | 50 | --- ## Задача Построить дневной баланс по каждому счёту на конец дня. Вернуть: `account_id`, `day`, `end_of_day_balance`.
Ответы
```sql WITH daily AS ( SELECT account_id, tx_time::date AS day, SUM(amount) AS day_delta FROM ledger GROUP BY account_id, tx_time::date ) SELECT account_id, day, SUM(day_delta) OVER (PARTITION BY account_id ORDER BY day) AS end_of_day_balance FROM daily ORDER BY account_id, day; ```