전공/프로그래머스
(SQL) 서울에 위치한 식당 목록 출력하기
yha97
2023. 10. 3. 18:29
날짜 : 2023. 10. 03
사용 언어 : oracle
문제
코드
-- 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수
-- 리뷰 평균점수는 소수점 세 번째 자리에서 반올림
-- 결과는 평균점수를 기준으로 내림차순 정렬
-- 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬
select a.rest_id, a.rest_name, a.food_type, a.favorites, a.address, b.score
from rest_info a
join (select rest_id, round(avg(review_score), 2) as score from rest_review group by rest_id) b
on a.rest_id = b.rest_id
where a.address like '서울%'
order by b.score desc, a.favorites desc
;
풀이
- 식당의 정보를 담은 테이블 a와 식당별 리뷰를 그루핑한 서브쿼리로 만든 테이블 b를 조인한다.
- 그 다음 서울(서울특별시, 서울)에 있는 것들을 걸러내고, 조건에 따라 출력한다.
알게된 점
- 분명 확실하게 풀었는데 틀렸다고 나와서 의아해했다.
- rest_info에 대해서 전체로 select문을 날려보니까 서울시, 서울특별시 두 가지로 정리가 되었있었다.
- 문제가.... 좀 사소한 부분에서 까탈스럽게 군 느낌이다.
참고 사이트
-