Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions lab-sql-advanced-queries.sql
Original file line number Diff line number Diff line change
@@ -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;