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 사용!