본문 바로가기

프로그래머스(Oracle)

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

728x90

코드 힌트

1. JOIN을 사용한 데이터 결합

  • REST_INFO 테이블과 REST_REVIEW 테이블을 JOIN하여 연결된 데이터를 조회합니다.
  • REST_ID를 기준으로 두 테이블을 결합하여 리뷰와 식당 정보를 함께 출력합니다.

2. 주소 필터링

  • WHERE 절에서 LIKE '서울%'을 사용하여 주소가 '서울'로 시작하는 식당만 필터링합니다.
  • LIKE는 특정 패턴과 일치하는 값을 필터링할 때 사용됩니다.

3. 평균 리뷰 점수 계산

  • AVG 함수를 사용하여 각 식당의 평균 리뷰 점수를 계산합니다.
  • ROUND(AVG(...), 2)로 평균을 소수점 둘째 자리까지 반올림하여 표시합니다.

4. 그룹화된 데이터 정렬

  • GROUP BY로 각 식당을 그룹화하여 해당 그룹의 평균 리뷰 점수를 구합니다.
  • ORDER BY SCORE DESC, FAVORITES DESC로 평균 리뷰 점수를 기준으로 내림차순 정렬하며, 동일한 점수일 경우 즐겨찾기 수 기준으로 추가 정렬합니다.

 


정답은 더보기 클릭

더보기
더보기
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE 
-- 식당 ID, 이름, 음식 종류, 즐겨찾기 수, 주소, 리뷰 점수 평균을 소수점 2자리로 반올림하여 조회

FROM REST_INFO I
JOIN REST_REVIEW R 
-- REST_INFO 테이블과 REST_REVIEW 테이블을 식당 ID를 기준으로 조인

ON I.REST_ID = R.REST_ID 
-- 조인 조건: 식당 ID가 동일한 데이터 연결

WHERE I.ADDRESS LIKE '서울%' 
-- 주소가 '서울'로 시작하는 식당만 조회

GROUP BY I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS 
-- 각 식당의 ID, 이름, 음식 종류, 즐겨찾기 수, 주소를 기준으로 그룹화

ORDER BY SCORE DESC, I.FAVORITES DESC 
-- 평균 리뷰 점수 기준으로 내림차순 정렬, 리뷰 점수가 동일할 경우 즐겨찾기 수 기준으로 추가 정렬
728x90