테이블:Movies
+---------------+---------+
| 열 이름 | 유형 |
+---------------+---------+
| movie_id | int |
| title | varchar |
+---------------+---------+
movie_id는 이 테이블의 기본 키(고유한 값을 갖는 열)입니다.
title은 영화의 이름입니다.
테이블:Users
+---------------+---------+
| 열 이름 | 유형 |
+---------------+---------+
| user_id | int |
| name | varchar |
+---------------+---------+
user_id는 이 테이블의 기본 키(고유한 값을 가진 열)입니다.
'name' 열은 고유한 값을 가집니다.
테이블:MovieRating
이 테이블에는 사용자가 리뷰에서 평가한 영화 평점이 포함되어 있습니다.
created_at은 사용자의 리뷰 날짜입니다.
해결책을 작성하세요:
가장 많은 영화를 평가한 사용자의 이름을 구하세요.
평가 수가 같으면 사전순으로 더 작은 사용자 이름을 반환하세요.
에서 평균 평점이 가장 높은 영화 제목을 찾으세요 February 2020. 동점인 경우,
사전순으로 더 작은 영화 제목을 반환하세요.
작성 쿼리
(SELECT name AS results
FROM MovieRating JOIN Users USING(user_id)
GROUP BY name
ORDER BY COUNT(*) DESC, name
LIMIT 1)
UNION ALL
(SELECT title AS results
FROM MovieRating JOIN Movies USING(movie_id)
WHERE EXTRACT(YEAR_MONTH FROM created_at) = 202002
GROUP BY title
ORDER BY AVG(rating) DESC, title
LIMIT 1)
설명
첫 번째 쿼리(사용자용):
SELECT name AS results: 사용자 이름을 선택하여 "결과"라는 별칭을 지정합니다.
FROM MovieRating JOIN Users USING(user_id):
user_id를 사용하여 MovieRating 테이블과 Users 테이블을 조인합니다.
GROUP BY name: 결과를 사용자 이름으로 그룹화합니다.
ORDER BY COUNT(*) DESC, name:
결과를 평점 수를 내림차순으로 정렬하고, 동점인 경우 사용자 이름을 기준으로 정렬합니다.
LIMIT 1: 정렬된 목록에서 맨 위 행(가장 자주 사용된 사용자)으로 출력을 제한합니다.
두 번째 질의(2020년 2월 영화):
SELECT title AS results: 영화 제목을 선택하여 "결과"라는 별칭을 지정합니다.
FROM MovieRating JOIN Movies USING(movie_id):
movie_id를 사용하여 MovieRating 및 Movies 테이블을 조인합니다.
WHERE EXTRACT(YEAR_MONTH FROM created_at) =
202002: 2020년 2월에 생성된 평점을 필터링합니다
GROUP BY title. : 결과를 영화 제목으로 그룹화합니다.
ORDER BY AVG(rating) DESC, title:
결과를 평균 평점을 내림차순으로 정렬하고, 동점이 있는 경우 영화 제목을 기준으로 정렬합니다.
LIMIT 1: 정렬된 목록에서 맨 위 행
(2020년 2월에 가장 높은 평점을 받은 영화)으로 출력을 제한합니다.
모두 연합:
두 쿼리의 결과를 결합합니다.
"UNION ALL"는 중복된 행이라도 모든 행을 보존하는 데 사용됩니다.
문제 설명
정수 num1과 num2가 주어질 때,
num1에서 num2를 뺀 값을 return하도록 soltuion 함수를 완성해주세요.
제한사항
-50000 ≤ num1 ≤ 50000
-50000 ≤ num2 ≤ 50000
풀이
def solution(num1, num2):
answer = num1 - num2
return answer