Clientes que se llaman igual que actores de películas
SELECT distinct concat(c.first_name, " ", c.last_name) cliente,
concat(a.first_name, " ", a.last_name) as actor
FROM actor a join
film_actor using (actor_id)
join film using (film_id)
join inventory using (film_id)
join rental using (inventory_id)
join customer c using (customer_id)
where a.first_name=c.first_name
order by cliente
Películas por categoría:
select name, count(title)
from category join film_category using(category_id)
join film using (film_id)
group by name
Clientes por país:
SELECT country, count(customer_id) FROM sakila.country
left join city using (country_id)
left join address using (city_id)
left join customer using (address_id)
group by country;
Clientes que se apellidan como el empleado que los atiende:
select distinct concat(c.first_name, " ", c.last_name) cliente,
concat(s.first_name, " ", s.last_name) as empleado
from customer c join rental using (customer_id)
join staff s using (staff_id)
where c.last_name=s.last_name
Clientes que viven en el mismo código postal que los empleados:
select distinct concat(c.first_name, " ", c.last_name) cliente,
concat(s.first_name, " ", s.last_name) as empleado
from customer c join address a1 on c.address_id=a1.address_id
join address a2 on a1.postal_code=a2.postal_code
join staff s on a2.address_id=s.address_id
Películas con importe total de alquiler menor que 2:
select title, avg(ifnull(amount,0)) total
from film left join inventory using (film_id)
left join rental using (inventory_id)
left join payment using (rental_id)
group by title
having total<2
order by 2
Total de clientes por países
select country, count(customer_id)
from country join city using (country_id)
join address using (city_id)
join customer using (address_id)
group by country