@antoshka_basenko

Как вывести имена клиентов банка, у которых сумма зачислений выше средней суммы зачисления?

Есть три таблицы:
user [id, name]
account [id, user_id (foreign key), currency (Enum: 'EUR', 'USD', 'GBP')]
operation [id, account_id (foreign key), type (Enum: 'income', 'expense'), amount (INT)]
прим. у одного пользователя может быть несколько счетов

Необходимо сделать запрос, который выведет имена клиентов банка, у которых сумма зачислений (income) на их банковские счета в евро больше среднего зачисления в евро (EUR).
  • Вопрос задан
  • 85 просмотров
Решения вопроса 1
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
select u.name, sum(amount)
from account a
join user u on u.id = a.user_id
join operation o on o.account_id = a.id
where a.currency = 'EUR'
group by u.id, u.name
having sum(amount) > (
	select avg(amount)
  	from account a
	join operation o on o.account_id = a.id 
	where a.currency = 'EUR'
)


online sql editor
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
1. Написать запрос, выводящий счета, у которых сумма зачислений больше нуля.
2. Написать на основе п. 1 запрос, выводящий имена клиентов, которым принадлежат счета, у которых сумма зачислений больше нуля.
3. Написать запрос на вычисление среднего зачисления
4. Заменить в запросе из п. 2 ноль подзапросом из п. 3
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы