Как исправить этот sql запрос, чтобы он работал корректно?
Имеется MySQL таблица Sakila Sample Database.Пытаюсь выполнить задание:
Нужно одним запросом вывести id клиента, полное имя (ФИ), адрес, округ, город, страна, сумма платежей клиента в 2006 году, количество арендованных клиентом фильмов за все время. И это все только по жителям РФ.
Я в своих рассуждениях пришел к двум запросам. Оба работают не совсем корректно.
1.
select distinct a.ID, a.name, a.address, a.city, c.district, a.country
, if(year(b.payment_date)=2006, sum(b.amount), 0) as SUM_payments
, count(d.customer_id) as Total_Films
from customer_list a
left join payment b on a.ID=b.customer_id
join address c on a.address=c.address
left join rental d on b.rental_id=d.rental_id
where a.country = 'Russian Federation'
group by a.ID, b.amount, b.payment_date, c.district order by a.name;
select distinct a.ID, a.name, a.address, a.city, b.district, a.country
, if(year(c.payment_date)=2006, sum(c.amount), 0) as SUM_payments
, count(d.customer_id) as Quantity_Films
from customer_list a
join address b on a.address=b.address
join payment c on a.ID=c.customer_id
join rental d on a.ID=d.customer_id
where a.country = 'Russian Federation'
group by c.customer_id, c.payment_date, b.district order by a.name;
Проблема с последними двумя столбцами: перестраивая запрос, я добиваюсь корректного подсчета либо одного, либо второго. Никак не могу разобраться, чем это можно пофиксить. Буду благодарен за помощь.
Также сам запрос возможно построен полностью некорректно, т.к. у меня не получилось полностью убрать лишние строки в выводе с помощью distinct. Но и эту проблему я не понимаю как решить.