SQL Practice Tasks - Answer Key (Sakila
& World DB)
Task 1: Count Customer Rentals
SELECT c.customer_id, c.first_name, c.last_name, COUNT(r.rental_id) AS total_rental
FROM customer c
JOIN rental r ON c.customer_id = r.customer_id
GROUP BY c.customer_id
ORDER BY total_rental DESC;
Task 2: Highest Payment by Each Customer
SELECT c.customer_id, c.first_name, c.last_name, MAX(p.amount) AS max_payment
FROM customer c
JOIN payment p ON c.customer_id = p.customer_id
GROUP BY c.customer_id;
Task 3: Find Overdue Rentals
SELECT c.customer_id, c.first_name, c.last_name, COUNT(r.rental_id) AS overdue_count
FROM customer c
JOIN rental r ON c.customer_id = r.customer_id
WHERE r.return_date IS NULL
GROUP BY c.customer_id
HAVING overdue_count > 0;
Task 4: Revenue by Store
SELECT s.store_id, SUM(p.amount) AS total_revenue
FROM payment p
JOIN staff sf ON p.staff_id = sf.staff_id
JOIN store s ON sf.store_id = s.store_id
GROUP BY s.store_id;
Task 5: Average Payment per Film
SELECT f.film_id, f.title, AVG(p.amount) AS average_payment
FROM payment p
JOIN rental r ON p.rental_id = r.rental_id
JOIN inventory i ON r.inventory_id = i.inventory_id
JOIN film f ON i.film_id = f.film_id
GROUP BY f.film_id;
Task 6 (World DB): Cities in a Region
SELECT ci.ID AS city_id, ci.Name AS city_name, co.Name AS country_name, co.Region
FROM city ci
JOIN country co ON ci.CountryCode = co.Code
WHERE co.Region = 'Southeast Asia';
Task 7 (World DB): Count Countries per Continent
SELECT Continent, COUNT(*) AS country_count
FROM country
GROUP BY Continent;
Task 8 (World DB): Top 5 Most Populated Cities
SELECT ID AS city_id, Name AS city_name, Population
FROM city
ORDER BY Population DESC
LIMIT 5;