전공/프로그래머스

(SQL) 서울에 위치한 식당 목록 출력하기

yha97 2023. 10. 3. 18:29

날짜 : 2023. 10. 03

사용 언어 : oracle

 

문제

https://school.programmers.co.kr/learn/courses/30/lessons/131118?language=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문을 날려보니까 서울시, 서울특별시 두 가지로 정리가 되었있었다.

- 문제가.... 좀 사소한 부분에서 까탈스럽게 군 느낌이다.

 

 

참고 사이트