From a668f3630b6c58fdbc405be8bdfddd972f6a71ef Mon Sep 17 00:00:00 2001 From: mariamnez Date: Thu, 21 Aug 2025 10:42:32 +0200 Subject: [PATCH] Solved lab --- Challenge 1.sql | 40 ++++++++++++++++++++++++++++++++++++++++ Challenge 2.sql | 27 +++++++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 Challenge 1.sql create mode 100644 Challenge 2.sql diff --git a/Challenge 1.sql b/Challenge 1.sql new file mode 100644 index 0000000..568a60c --- /dev/null +++ b/Challenge 1.sql @@ -0,0 +1,40 @@ +USE sakila; +SELECT + MIN(length) AS min_duration, + MAX(length) AS max_duration +FROM film; +SELECT + FLOOR(AVG(length) / 60) AS avg_hours, + (ROUND(AVG(length)) - 60 * FLOOR(AVG(length) / 60)) AS avg_minutes +FROM film; +SELECT + DATEDIFF(MAX(rental_date), MIN(rental_date)) AS days_operating +FROM rental; +SELECT + rental_id, + rental_date, + DATE_FORMAT(rental_date, '%M') AS rental_month, + DATE_FORMAT(rental_date, '%W') AS rental_weekday +FROM rental +ORDER BY rental_date +LIMIT 20; +SELECT + rental_id, + rental_date, + CASE + WHEN DAYOFWEEK(rental_date) IN (1,7) THEN 'weekend' + ELSE 'workday' + END AS day_type +FROM rental +ORDER BY rental_date +LIMIT 20; +SELECT + title, + IFNULL(CAST(rental_duration AS CHAR), 'Not Available') AS rental_duration +FROM film +ORDER BY title ASC; +SELECT + CONCAT(first_name, ' ', last_name) AS full_name, + SUBSTRING(email, 1, 3) AS email_prefix +FROM customer +ORDER BY last_name ASC, first_name ASC; diff --git a/Challenge 2.sql b/Challenge 2.sql new file mode 100644 index 0000000..5e64d9a --- /dev/null +++ b/Challenge 2.sql @@ -0,0 +1,27 @@ +SELECT COUNT(*) AS total_films +FROM film; +SELECT rating, COUNT(*) AS num_films +FROM film +GROUP BY rating; +SELECT rating, COUNT(*) AS num_films +FROM film +GROUP BY rating +ORDER BY num_films DESC; +SELECT + rating, + ROUND(AVG(length), 2) AS mean_duration +FROM film +GROUP BY rating +ORDER BY mean_duration DESC; +SELECT + rating, + ROUND(AVG(length), 2) AS mean_duration +FROM film +GROUP BY rating +HAVING AVG(length) > 120 +ORDER BY mean_duration DESC; +SELECT last_name +FROM actor +GROUP BY last_name +HAVING COUNT(*) = 1 +ORDER BY last_name;