본문 바로가기
IT/SQL

[프로그래머스] SQL 고득점 Kit - 서울에 위치한 식당 목록 출력하기(Oracle)

by 먼지한톨 2023. 10. 11.
반응형

문제설명

  • 테이블1명 : REST_INFO
  • 설명 : 식당 정보
NAME TYPE NULLABLE KEY COMMENT
REST_ID VARCHAR(5) FALSE PK 식당 ID
REST_NAME VARCHAR(50) FALSE   식당이름
FOOD_TYPE VARCHAR(20) TRUE   음식종류
VIEWS NUMBER TRUE   조회수
FAVORIES NUMBER TRUE   즐겨찾기수
PARKING_LOT VARCHAR(1) TRUE   주차장 유무
ADDRESS VARCHAR(100) TRUE   주소
TEL VARCHAR(100) TRUE   전화번호

 

  • 테이블2명 : REST_REVIEW
  • 설명 : 식당의 리뷰 정보
NAME TYPE NULLABLE KEY COMMENT
REPLY_ID VARCHAR(10) FALSE PK 리뷰 ID
REST_ID VARCHAR(10) TRUE FK 식당 ID
MEMBER_ID VARCHAR(100) TRUE   회원 ID
REVIEW_SCORE NUMVER TRUE   점수
REVIEW_TEXT VARCHAR(1000) TRUE   리뷰 텍스트
REVIEW_DATE DATE TRUE   리뷰 작성

 

문제

서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.

 

SQL 답

SELECT a.REST_ID
	, a.REST_NAME
	, a.FOOD_TYPE
	, a.FAVORITES
	, a.ADDRESS
	, ROUND(AVG(REVIEW_SCORE),2) AVG_REVIEW_SCORE
FROM REST_INFO a
JOIN REST_REVIEW b
ON a.REST_ID = b.REST_ID
GROUP BY a.REST_ID
	, a.REST_NAME
	, a.FOOD_TYPE
	, a.FAVORITES
	, a.ADDRESS
HAVING a.ADDRESS LIKE '서울%' 
ORDER BY AVG_REVIEW_SCORE DESC
	, a.FAVORITES DESC
반응형