[LeetCode SQL 50] 1341. Movie Rating

2024. 6. 10. 00:55SQL

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

 

 

문제

  • 가장 많은 영화에 평점을 매긴 사용자의 이름을 찾습니다. 동점인 경우, 사전순으로 더 앞의 사용자 이름을 반환합니다.
  • 2020년 2월에 평균 평점이 가장 높은 영화의 이름을 찾습니다. 동점인 경우, 사전순으로 더 앞의 영화 이름을 반환합니다.

 

 

 

풀이

SELECT name AS results
FROM Users
WHERE user_id = (
    SELECT user_id
    FROM (
        SELECT user_id, COUNT(DISTINCT movie_id) AS num_rated_movies
        FROM MovieRating
        GROUP BY user_id
        ORDER BY num_rated_movies DESC, user_id ASC
        LIMIT 1
    ) AS max_rated_movies
)

UNION ALL

SELECT title AS results
FROM Movies
WHERE movie_id = (
    SELECT movie_id
    FROM (
        SELECT movie_id, AVG(rating) AS avg_rating
        FROM MovieRating
        WHERE created_at >= '2020-02-01' AND created_at < '2020-03-01'
        GROUP BY movie_id
        ORDER BY avg_rating DESC, movie_id ASC
        LIMIT 1
    ) AS max_avg_rating
)