diff --git a/lab-sql-advanced-queries.sql b/lab-sql-advanced-queries.sql new file mode 100644 index 0000000..8ceccbc --- /dev/null +++ b/lab-sql-advanced-queries.sql @@ -0,0 +1,32 @@ +-- 1. List each pair of actors that have worked together. +SELECT * +FROM SAKILA.FILM_ACTOR +ORDER BY 2,1; + + +SELECT Actor1.ACTOR_ID AS ACTOR1, Actor2.ACTOR_ID AS ACTOR2, Actor1.FILM_ID +FROM SAKILA.FILM_ACTOR Actor1 +INNER JOIN SAKILA.FILM_ACTOR Actor2 +ON Actor1.FILM_ID = Actor2.FILM_ID +AND Actor1.ACTOR_ID <> Actor2.ACTOR_ID; + +-- 2. For each film, list actor that has acted in more films + +WITH ACTORSplus AS +(SELECT +F.TITLE, +FA.FILM_ID, +CONCAT(A.FIRST_NAME, ' ', A.LAST_NAME) AS ACTOR_NAME +FROM SAKILA.ACTOR A +INNER JOIN SAKILA.FILM_ACTOR FA ON A.ACTOR_ID = FA.ACTOR_ID +INNER JOIN SAKILA.FILM F ON FA.FILM_ID = F.FILM_ID) +SELECT DISTINCT FILM_ID, TITLE, ACTOR_NAME, FILM_COUNT +FROM ( +SELECT *, MAX(FILM_COUNT) OVER (PARTITION BY TITLE) AS MAX_FILM_COUNT +FROM ( +SELECT *, COUNT(FILM_ID) OVER (PARTITION BY ACTOR_NAME) AS FILM_COUNT +FROM CTE_PROLIFIC_ACTORS +ORDER BY FILM_COUNT) SUB1) SUB2 +WHERE FILM_COUNT = MAX_FILM_COUNT; + +