From 0575ecfeb699332675940c80e4f016d243e425ad Mon Sep 17 00:00:00 2001 From: gabrieleb76-bot Date: Wed, 29 Apr 2026 17:03:33 +0100 Subject: [PATCH] Gabriel_sql-subqueries.sql --- sql-subqueries.sql | 108 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 sql-subqueries.sql diff --git a/sql-subqueries.sql b/sql-subqueries.sql new file mode 100644 index 0000000..9601650 --- /dev/null +++ b/sql-subqueries.sql @@ -0,0 +1,108 @@ +USE sakila; + +-- 1 +SELECT COUNT(*) AS copies +FROM inventory +WHERE film_id = ( + SELECT film_id + FROM film + WHERE title = 'HUNCHBACK IMPOSSIBLE' +); + +-- 2 +SELECT title, length +FROM film +WHERE length > ( + SELECT AVG(length) + FROM film +); + +-- 3 +SELECT first_name, last_name +FROM actor +WHERE actor_id IN ( + SELECT actor_id + FROM film_actor + WHERE film_id = ( + SELECT film_id + FROM film + WHERE title = 'ALONE TRIP' + ) +); + +-- 4 +SELECT title +FROM film +WHERE film_id IN ( + SELECT film_id + FROM film_category + WHERE category_id = ( + SELECT category_id + FROM category + WHERE name = 'Family' + ) +); + +-- 5 +SELECT first_name, last_name, email +FROM customer +WHERE address_id IN ( + SELECT address_id + FROM address + WHERE city_id IN ( + SELECT city_id + FROM city + WHERE country_id = ( + SELECT country_id + FROM country + WHERE country = 'Canada' + ) + ) +); + +-- 6 +SELECT title +FROM film +WHERE film_id IN ( + SELECT film_id + FROM film_actor + WHERE actor_id = ( + SELECT actor_id + FROM film_actor + GROUP BY actor_id + ORDER BY COUNT(*) DESC + LIMIT 1 + ) +); + +-- 7 +SELECT title +FROM film +WHERE film_id IN ( + SELECT film_id + FROM inventory + WHERE inventory_id IN ( + SELECT inventory_id + FROM rental + WHERE customer_id = ( + SELECT customer_id + FROM payment + GROUP BY customer_id + ORDER BY SUM(amount) DESC + LIMIT 1 + ) + ) +); + +-- 8 +SELECT customer_id, SUM(amount) AS total_spent +FROM payment +GROUP BY customer_id +HAVING SUM(amount) > ( + SELECT AVG(total_spent) + FROM ( + SELECT SUM(amount) AS total_spent + FROM payment + GROUP BY customer_id + ) AS avg_table +); \ No newline at end of file