## Контекст (таблицы и пример данных) ### Таблицы - `users(id, full_name, email, city, age, registe

SQL Developer Senior
## Контекст (таблицы и пример данных) ### Таблицы - `users(id, full_name, email, city, age, registered_at)` - `orders(id, user_id, order_date, amount, status)` - `payments(id, order_id, payment_date, payment_type, paid_amount)` ### Пример данных **orders** | id | user_id | order_date | amount | status | |---:|--------:|-------------|--------:|--------| | 10 | 1 | 2025-03-01 | 120.00 | paid | | 11 | 2 | 2025-03-02 | 2500.00 | new | **payments** | id | order_id | payment_date | payment_type | paid_amount | |----:|---------:|-------------|--------------|------------:| | 100 | 10 | 2025-03-01 | card | 120.00 | | 101 | 11 | 2025-03-03 | transfer | 1000.00 | --- ## Задача Найти пользователей, у которых **нет** неоплаченных (или недооплаченных) заказов. Критерий: для каждого заказа `SUM(paid_amount) >= orders.amount`.
Ответы
```sql SELECT u.id FROM users u WHERE NOT EXISTS ( SELECT 1 FROM orders o LEFT JOIN payments p ON p.order_id = o.id WHERE o.user_id = u.id GROUP BY o.id, o.amount HAVING COALESCE(SUM(p.paid_amount), 0) < o.amount ); ```