From 814ef134e1afee83255f62fb4bb83e2a2261e537 Mon Sep 17 00:00:00 2001 From: DaraH Date: Mon, 6 Jan 2025 09:22:54 -0400 Subject: [PATCH] Add files via upload --- SQL Subqueries lab.sql | 99 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 SQL Subqueries lab.sql diff --git a/SQL Subqueries lab.sql b/SQL Subqueries lab.sql new file mode 100644 index 0000000..b2b24c9 --- /dev/null +++ b/SQL Subqueries lab.sql @@ -0,0 +1,99 @@ +-- Query #1: How many copies of the film Hunchback Impossible exist in the inventory system? +SELECT COUNT(*) AS total_copies +FROM inventory +WHERE film_id = ( + SELECT film_id + FROM film + WHERE title = 'Hunchback Impossible' +); + +-- Query #2: List all films whose length is longer than the average of all the films. +SELECT title, length +FROM film +WHERE length > (SELECT AVG(length) FROM film); + +-- Query #3: Use subqueries to display all actors who appear in the film Alone Trip. +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' + ) +); + +-- Query #4: Identify all movies categorized as family films. +SELECT f.title +FROM film f +JOIN film_category fc ON f.film_id = fc.film_id +JOIN category c ON fc.category_id = c.category_id +WHERE c.name = 'Family'; + +-- Query #5: Get name and email from customers from Canada using subqueries. +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' + ) + ) +); + +-- Query #6: Films starred by the most prolific actor. +WITH prolific_actor AS ( + SELECT actor_id + FROM film_actor + GROUP BY actor_id + ORDER BY COUNT(film_id) DESC + LIMIT 1 +) + +SELECT f.title +FROM film f +JOIN film_actor fa ON f.film_id = fa.film_id +WHERE fa.actor_id = (SELECT actor_id FROM prolific_actor); + +-- Query #7: Films rented by the most profitable customer. +WITH profitable_customer AS ( + SELECT customer_id, SUM(amount) AS total_spent + FROM payment + GROUP BY customer_id + ORDER BY total_spent DESC + LIMIT 1 +) + +SELECT DISTINCT f.title +FROM rental r +JOIN inventory i ON r.inventory_id = i.inventory_id +JOIN film f ON i.film_id = f.film_id +WHERE r.customer_id = (SELECT customer_id FROM profitable_customer); + +-- Query #8: Get client_id and total_amount_spent for clients who spent more than the average total amount. +SELECT customer_id, SUM(amount) AS total_spent +FROM payment +GROUP BY customer_id +HAVING SUM(amount) > ( + SELECT AVG(total_amount) + FROM ( + SELECT SUM(amount) AS total_amount + FROM payment + GROUP BY customer_id + ) subquery +); + + + + + + +