-- Películas ‘Épicas’ (Epic) o ‘Brillantes’ (brilliant) (description)
-- que duren más de 180 minutos (length)
SELECT * FROM sakila.film
where (description like '%epic%' or description like '%brilliant%')
and `length`>180;
-- Películas que duren entre 100 y 120 minutos o entre 50 y 70 minutos
SELECT * FROM sakila.film
where length between 100 and 120 or length between 50 and 70;
-- Películas que cuesten 0.99, 2.99 y tengan un rating ‘g’ o ‘r’
-- y que hablen de cocodrilos (crocodile)
SELECT * FROM film
where rental_rate between 0.99 and 2.99 and rating in ('g','r')
and description like '%crocodile%';
-- Direcciones de ontario o de punjab o que su código postal acabe en 5
-- o que su teléfono acabe en 5
SELECT * FROM sakila.address
where district in ('ontario', 'punjab') or postal_code like '%5'
or phone like '%5'
order by district;
-- Ventas totales por empleado
select first_name, last_name, count(payment_id) total, sum(amount) importe
from staff join payment on staff.staff_id=payment.staff_id
group by staff.staff_id;
-- Películas en las que han trabajado más de 10 actores
select title, count(actor.actor_id) total, group_concat(concat(first_name,' ',last_name)) actores from film join film_actor on film.film_id=film_actor.film_id
join actor on actor.actor_id=film_actor.actor_id
group by film.film_id
having total>10
order by title;
-- El título de la película que más se ha alquilado (en número de alquileres)
select title, count(rental_id) total from film join inventory on film.film_id=inventory.film_id
join rental on inventory.inventory_id=rental.inventory_id
group by film.film_id
order by total desc
limit 1;
-- El título de la película que más se ha alquilado de rating 'r'
select title, count(rental_id) total from film join inventory on film.film_id=inventory.film_id
join rental on inventory.inventory_id=rental.inventory_id
where rating='r'
group by film.film_id
order by total desc
limit 1;
-- El título de la película que más dinero ha dado (en suma de importe)
select title, sum(amount) total from film join inventory on film.film_id=inventory.film_id
join rental on inventory.inventory_id=rental.inventory_id
join payment on rental.rental_id=payment.rental_id
group by film.film_id
order by total desc
limit 1;
-- Los 5 actores que han trabajado en menos películas
select first_name, last_name, count(film_actor.film_id) total
from actor join film_actor on actor.actor_id=film_actor.actor_id
group by actor.actor_id
order by total
limit 5;
-- Los 5 actores que han trabajado en menos películas de rating 'r'
select first_name, last_name, count(film_actor.film_id) total
from actor join film_actor on actor.actor_id=film_actor.actor_id
join film on film.film_id=film_actor.film_id
where rating='r'
group by actor.actor_id
order by total
limit 5;