본문 바로가기
SQL/SQL test

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

by ISLA! 2023. 10. 4.

 

문제는 프로그래머스 홈페이지에서 더 자세히 확인하실 수 있습니다.
https://school.programmers.co.kr/learn/courses/30/lessons/131118

 

문제

REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요.

이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.

 

풀이

SELECT info.REST_ID, info.REST_NAME, info.FOOD_TYPE, info.FAVORITES, info.ADDRESS, round(AVG(review.REVIEW_SCORE), 2) as SCORE
FROM REST_INFO as info
INNER JOIN REST_REVIEW as review ON info.REST_ID = review.REST_ID
GROUP BY info.REST_ID
HAVING info.ADDRESS LIKE '서울%'
ORDER BY SCORE desc, info.FAVORITES desc
  • 두 개의 데이터를 JOIN 하는 것으로 기본 데이터를 만든다.
  • 리뷰 평균 점수를 집계하기 위해서, GROUP BY를 해야한다. (식당 아이디 기준)
  • 평균 점수를 위해 AVG() 를 사용하며, 3번째 자리에서 소수점 반올림을 위해 ROUND( ,2) 해준다.
  • 그룹 결과 중, '서울'에 위치한 식당을 찾기 위해 HAVING 절을 사용하며, LIKE 로 찾는 텍스트를 지정해준다.
  • 문제에서 요구한대로 내림차순 결과물을 정리한다.

 

결과

728x90