/*● Consulta todos los clientes que han alquilado películas
● Obtenga todos los clientes que hayan vencido la fecha de vencimiento de pago.
Muestra también por qué películas vencen sus pagos.
● ¿Cuáles son las categorías más alquiladas?
● Cuales son las categorías más alquiladas agrupadas por cliente.
● Cual es el lenguaje más alquilado
● Cuál empleados son los mejores. Significa cual empleados se alquila maximo películas.
● Quién es el actor más famoso. Significa películas de cual actor se alquila maximo.
● Quien es el mejor cliente. ¿Significa quien alquila máximo?*/


SELECT first_name From customer 
JOIN rental ON customer.customer_id=rental.customer_id;

select  DISTINCT f.film_id, f.title, first_name from customer c
join rental r on c.customer_id=r.customer_id 
JOIN payment p ON p.rental_id=r.rental_id 
JOIN inventory i ON i.inventory_id=r.inventory_id
JOIN film f ON f.film_id=i.film_id
where r.return_date<current_date 
LIMIT 10;

/*¿Cuáles son las categorías más alquiladas?*/
select c.category_id ,c.name, COUNT(r.rental_id) cont FROM category c 
JOIN film_category fc ON c.category_id=fc.category_id
JOIN film f ON F.film_id=fc.film_id
JOIN inventory i ON i.film_id=f.film_id
JOIN rental r ON r.inventory_id=i.inventory_id
GROUP BY(c.category_id) 
ORDER BY(cont) desc
; 



select cus.first_name,c.name, COUNT(r.rental_id) AS cont FROM category c 
JOIN film_category fc ON c.category_id=fc.category_id
JOIN film f ON F.film_id=fc.film_id
JOIN inventory i ON i.film_id=f.film_id
JOIN rental r ON r.inventory_id=i.inventory_id
JOIN customer cus ON cus.customer_id=r.customer_id
GROUP BY(c.name,cus.first_name) 
ORDER BY(cus.first_name,COUNT(r.rental_id))  DESC
;   


SELECT l.name,COUNT(r.rental_id) FROM language l 
JOIN film f ON l.language_id=f.language_id
JOIN inventory i ON f.film_id=i.film_id
JOIN rental r ON i.inventory_id=r.inventory_id
GROUP BY(l.name)
ORDER BY(COUNT(r.rental_id)) DESC
LIMIT(1);
;




SELECT s.first_name ,COUNT(r.rental_id)  FROM staff s
JOIN payment p ON s.staff_id=p.staff_id
JOIN rental r ON r.rental_id=p.rental_id
GROUP BY (s.first_name)
ORDER BY(COUNT(r.rental_id)) DESC
;




SELECT a.first_name, COUNT(r.rental_id) FROM actor a 
JOIN film_actor fa ON a.actor_id=fa.actor_id
JOIN film f ON fa.film_id=f.film_id
JOIN inventory i ON f.film_id=i.film_id
JOIN rental r ON i.inventory_id=r.inventory_id
GROUP BY (a.first_name)
ORDER BY(COUNT(r.rental_id)) DESC
LIMIT(1)
;



SELECT first_name,count (rental.rental_id) From customer 
JOIN rental ON customer.customer_id=rental.customer_id
GROUP BY(first_name)
ORDER BY(COUNT(rental.rental_id)) DESC
LIMIT (1)
;