From b096dece3576dadc9525373ca4e7dac19cb6da08 Mon Sep 17 00:00:00 2001 From: Magnus-droid Date: Wed, 22 Jan 2025 14:56:13 +0100 Subject: [PATCH 1/4] Solved core tasks --- sql/products/core.sql | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 sql/products/core.sql diff --git a/sql/products/core.sql b/sql/products/core.sql new file mode 100644 index 0000000..2a4f963 --- /dev/null +++ b/sql/products/core.sql @@ -0,0 +1,40 @@ +CREATE TABLE films( + id serial primary key, + title varchar(255) unique not null, + genre varchar(255) not null, + release_year int not null, + score int not null +); + +INSERT INTO films (title, genre, release_year, score) +VALUES +('The Shawshank Redemption', 'Drama', 1994, 9), +('The Godfather', 'Crime', 1972, 9), +('The Dark Knight', 'Action', 2008, 9), +('Alien', 'SciFi', 1979, 9), +('Total Recall', 'SciFi', 1990, 8), +('The Matrix', 'SciFi', 1999, 8), +('The Matrix Resurrections', 'SciFi', 2021, 5), +('The Matrix Reloaded', 'SciFi', 2003, 6), +('The Hunt for Red October', 'Thriller', 1990, 7), +('Misery', 'Thriller', 1990, 7), +('The Power Of The Dog', 'Western', 2021, 6), +('Hell or High Water', 'Western', 2016, 8), +('The Good the Bad and the Ugly', 'Western', 1966, 9), +('Unforgiven', 'Western', 1992, 7); + + +SELECT * FROM films; +SELECT * FROM films ORDER BY score DESC; +SELECT * FROM films ORDER BY release_year ASC; +SELECT * FROM films WHERE score >= 8; +SELECT * FROM films WHERE score <= 7; +SELECT * FROM films WHERE release_year = 1990; +SELECT * FROM films WHERE release_year < 2000; +SELECT * FROM films WHERE release_year > 1990; +SELECT * FROM films WHERE release_year >= 1990 AND release_year <= 1999; +SELECT * FROM films WHERE genre = 'SciFi'; +SELECT * FROM films WHERE genre = 'SciFi' OR genre = 'Western'; +SELECT * FROM films WHERE genre != 'SciFi'; +SELECT * FROM films WHERE genre = 'Western' AND release_year < 2000; +SELECT * FROM films WHERE title LIKE '%Matrix%'; \ No newline at end of file From 5607800b347b553ba044cf7cb3610eb18d3ecd5c Mon Sep 17 00:00:00 2001 From: Magnus-droid Date: Fri, 24 Jan 2025 15:39:54 +0100 Subject: [PATCH 2/4] Solved extension 1 --- sql/products/{core.sql => core_and_extension.sql} | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) rename sql/products/{core.sql => core_and_extension.sql} (90%) diff --git a/sql/products/core.sql b/sql/products/core_and_extension.sql similarity index 90% rename from sql/products/core.sql rename to sql/products/core_and_extension.sql index 2a4f963..0aebb21 100644 --- a/sql/products/core.sql +++ b/sql/products/core_and_extension.sql @@ -37,4 +37,9 @@ SELECT * FROM films WHERE genre = 'SciFi'; SELECT * FROM films WHERE genre = 'SciFi' OR genre = 'Western'; SELECT * FROM films WHERE genre != 'SciFi'; SELECT * FROM films WHERE genre = 'Western' AND release_year < 2000; -SELECT * FROM films WHERE title LIKE '%Matrix%'; \ No newline at end of file +SELECT * FROM films WHERE title LIKE '%Matrix%'; + +SELECT COUNT(id) FROM films; +SELECT AVG(score) FROM films; +SELECT AVG(score) FROM films GROUP BY genre; + From cbfcd1b67f224856dc7a8b3347e2cbd0ad56be96 Mon Sep 17 00:00:00 2001 From: Magnus-droid Date: Fri, 24 Jan 2025 16:00:41 +0100 Subject: [PATCH 3/4] Solved extension 2 --- sql/products/core_and_extension.sql | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/sql/products/core_and_extension.sql b/sql/products/core_and_extension.sql index 0aebb21..0bd6760 100644 --- a/sql/products/core_and_extension.sql +++ b/sql/products/core_and_extension.sql @@ -43,3 +43,15 @@ SELECT COUNT(id) FROM films; SELECT AVG(score) FROM films; SELECT AVG(score) FROM films GROUP BY genre; +INSERT INTO directors (name) +VALUES + ('Director 1'), + ('Director 2'), + ('Director 3'), + ('Director 4'); + +SELECT * +FROM films +JOIN directors +ON films.director_id = directors.id; + From 8e7598fc1f40c6d9b011e9c1fb49646875a7cd7e Mon Sep 17 00:00:00 2001 From: Magnus-droid Date: Fri, 24 Jan 2025 16:16:45 +0100 Subject: [PATCH 4/4] Solved extension 3 --- sql/products/core_and_extension.sql | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sql/products/core_and_extension.sql b/sql/products/core_and_extension.sql index 0bd6760..d69f97a 100644 --- a/sql/products/core_and_extension.sql +++ b/sql/products/core_and_extension.sql @@ -55,3 +55,8 @@ FROM films JOIN directors ON films.director_id = directors.id; +SELECT directors.name, COUNT(directors.name) +FROM films +JOIN directors +ON films.director_id = directors.id GROUP BY directors.name; +