Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Em :) 1st lab done, I think? #8

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

emmacunill
Copy link

No description provided.

@bripollc
Copy link

bripollc commented Nov 7, 2023

Emmaaaa:) Que gusto de lab!!!! 🥲 Casi casi todo es correcto, las queries no mienten! Veo que le has pillado el truco a SLQ y a las subqueries 🚀 Felicidadesssssss. Te dejo un par de cosillas, más que nada despistes, nada importante!

  • 6 - Te pide los nombres de las películas en las que aparece el actor más "frecuente", y tu estás devolviendo el número de veces que cada actor aparece 🙃 Pequeño despiste a la hora de leer el enunciado? jeje Te dejo una opción con temporary tables, porque creo que es interesante, pero también podrías haber encontrado el actor más recurrente (Gina Degeneres - 107), y luego usar esa query para buscar las películas asociadas.

option 1 (temporary table)

CREATE TEMPORARY TABLE my_table
SELECT actor_id
FROM film_actor
GROUP BY actor_id
ORDER BY COUNT(film_id) DESC
LIMIT 1;
SELECT title
FROM film
WHERE film_id in
	(SELECT film_id
    FROM film_actor
    WHERE actor_id in
		(SELECT actor_id
        FROM actor
        WHERE actor_id in
			(SELECT actor_id
			FROM my_table)));

option 2 (subqueries)

SELECT title
	FROM film
	WHERE film_id IN (SELECT film_id FROM film_actor 
		WHERE actor_id = 
        (SELECT actor_id FROM 
			(SELECT actor_id, COUNT(*) AS film_count 
            FROM film_actor 
            GROUP BY actor_id 
            ORDER BY film_count DESC LIMIT 1) 
	AS prolific_actor));
  • 8 - Buen planteamiento!!! Pero no estás filtrando correctamente los customers por los que superan el average y estás devolviendo todos. Te dejo una opción para conseguir el resultado final.
SELECT customer_id, SUM(amount) as total_amount_spent FROM payment
	GROUP BY customer_id
    HAVING total_amount_spent > (SELECT AVG(total_amount_spent) FROM
		(SELECT customer_id, SUM(amount) as total_amount_spent FROM payment GROUP BY customer_id) AS amount)
	ORDER BY total_amount_spent DESC;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants