학이시습
[프로그래머스] 4단계_서울에 위치한 식당 목록 출력하기 (Oracle) 본문
문제 링크
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(열 이름) -- 열의 평균을 구함
실행 결과
'Coding test > Programmers' 카테고리의 다른 글
[프로그래머스] 2단계_최솟값 만들기 (Java) (0) | 2025.04.30 |
---|---|
[프로그래머스] 0단계_모스부호 (1) (Java) (0) | 2025.04.29 |
[프로그래머스] 0단계_간단한 논리 연산 (Java) (0) | 2025.04.09 |
[프로그래머스] 0단계_특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Java) (0) | 2025.04.08 |
[프로그래머스] 0단계_홀수 vs 짝수 (Java) (0) | 2024.04.07 |