Coding test/Programmers
[프로그래머스] 4단계_서울에 위치한 식당 목록 출력하기 (Oracle)
dbswndud
2025. 4. 10. 00:06
문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
다음은 식당의 정보를 담은 REST_INFO 테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. REST_INFO 테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다.
작성한 코드
SELECT REST_ID, F.REST_NAME, F.FOOD_TYPE, F.FAVORITES, F.ADDRESS,
ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO F JOIN REST_REVIEW R USING(REST_ID)
WHERE F.ADDRESS LIKE '서울%'
GROUP BY REST_ID, F.REST_NAME, F.FOOD_TYPE, F.FAVORITES, F.ADDRESS
ORDER BY SCORE DESC, F.FAVORITES DESC;
풀이
- 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소 그리고 리뷰 평균 점수를 반올림하여 SELECT합니다.
- REST_INFO 테이블과 REST_REVIEW 테이블을 REST_ID 기준으로 조인합니다.
- WHERE절을 이용해 서울에 위치한 식당을 조회합니다.
- 집계함수를 사용했기 때문에 나머지 열을 GROUP BY로 묶어줍니다.
- 평균 점수를 기준으로 내림차순, 즐겨찾기 순으로 내림차순 해주면 끝!
사용한 함수
ROUND()
반올림 함수
ROUND(반올림할 숫자, 반올림할 소숫점 자리) -- 반올림할 소숫점 자리까지 나온다고 생각하면 편안
AVG()
평균을 구하는 함수
AVG(열 이름) -- 열의 평균을 구함