1. 문제 풀이 아이디어
- 서울 지역 음식점 정보를 결합하고, 평균 리뷰 점수를 계산한 뒤 정렬하면 문제를 해결할 수 있다.
2. 나의 정답 코드
SELECT
rest_id,
rest_name,
food_type,
favorites,
address,
ROUND(AVG(review_score), 2) score
FROM
rest_info
NATURAL JOIN
rest_review
WHERE
address LIKE '서울%'
GROUP BY
rest_id
HAVING
score IS NOT NULL
ORDER BY
score DESC,
favorites DESC;
3. 정리
NATURAL JOIN
을 사용해rest_info
와rest_review
테이블을 결합한다.
WHERE
절에서 주소가 '서울'로 시작하는 음식점만 필터링한다.
GROUP BY
절로rest_id
를 기준으로 그룹화하여 음식점별로 데이터를 집계한다.
AVG
함수를 사용해 각 음식점의 평균 리뷰 점수를 계산하고ROUND
함수를 통해 소수점 둘째 자리까지 반올림한다.
HAVING
절을 이용해 계산된 평균 점수가 NULL이 아닌 행만 필터링한다.
ORDER BY
절을 통해 점수를 기준으로 내림차순 정렬하고, 점수가 동일한 경우favorites
값을 기준으로 내림차순 정렬한다.
Share article