[leetcode]1341. Movie Rating

김준석·2024년 3월 8일

코딩테스트 - SQL

목록 보기
79/96

문제

https://leetcode.com/problems/movie-rating/description/?envType=study-plan-v2&envId=top-sql-50

포인트!
1. 영화 평가 수가 많은 이용자 찾기
동점인 경우 사전적으로 더 작은 사용자 이름을 추출
UNION
2. 2020년02월 평균 평점이 가장 높은 영화 이름을 찾기.
동점인 경우 사전적으로? 더 작은 영화 이름을 추출

코드

WITH many_user AS( #많은 rating을 남긴 유저
    SELECT
        mr.user_id,
        name,
        COUNT(*) AS cnt
    FROM
        MovieRating mr
        INNER JOIN Users u
            ON mr.user_id = u.user_id
    GROUP BY
        mr.user_id
    ORDER BY
        cnt DESC,
        name
    LIMIT 1
),
many_rating AS( #많은 rating을 받은 영화
    SELECT
        mr.movie_id,
        title,
        AVG(rating) AS avg_rating
    FROM
        MovieRating mr
        INNER JOIN Movies m
            ON mr.movie_id = m.movie_id
    WHERE 1=1
        AND created_at LIKE'2020-02%'
    GROUP BY
        mr.movie_id
    ORDER BY
        avg_rating DESC,
        title
    LIMIT 1
)
SELECT
    name AS results  
FROM
    many_user

UNION ALL

SELECT
    title
FROM
    many_rating

후기

생각보다 쉬운 문제였다.
유저이름과 영화이름이 같은 case가 있었기 때문에 UNION ALL 사용!

0개의 댓글