[SQL] Correlated subquery

pysun·2024년 9월 25일

SQL

목록 보기
6/11

연습문제: 장르별 평균 평점보다 높은 영화 확인하기

WITH avg_rating AS (
	SELECT 
    	ROUND(AVG(inner_movies.rating), 2) 
    FROM 
        movies AS inner_movies
    WHERE 1=1
        AND inner_movies.genres = main_movies.genres 
)
SELECT
	main_movies.title,
    main_movies.genres,
    main_movies.rating,
    (SELECT * FROM avg_rating) AS avg_rating
FROM
	movies AS main_movies
WHERE 1=1
	AND main_movies.release_date > 2020
	AND main_movies.rating > (SELECT * FROM avg_rating)
ORDER BY
	main_movies.genres ASC,
    main_movies.rating DESC;

연습문제: 감독 평균 수익보다 많은 수익을 번 감독 찾기

WITH director_by_career_rev AS (
    SELECT
        director,
        SUM(revenue) AS career_revenue
    FROM
        movies
    WHERE 1=1
        AND director IS NOT NULL
        AND revenue IS NOT NULL
    GROUP BY
        director
), peers_avg AS (
	SELECT
    	AVG(career_revenue) 
    FROM
    	director_by_career_rev  
)
SELECT
	director,
	SUM(revenue) AS total_revenue,
    ROUND((SELECT * FROM peers_avg), 0) AS peers_avg
FROM
	movies
WHERE 1=1
	AND director IS NOT NULL
    AND revenue IS NOT NULL
GROUP BY
	director
HAVING
	total_revenue > (SELECT * FROM peers_avg);
profile
배움의 흔적이 성장으로 이어지는 공간

0개의 댓글