카테고리 없음

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

용이03 2025. 2. 20. 15:31

문제

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

SELECT I.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS , ROUND(AVG(REVIEW_SCORE),2) SCORE
FROM REST_INFO I LEFT JOIN REST_REVIEW R ON I.REST_ID=R.REST_ID
WHERE SUBSTR(ADDRESS,1,2) = '서울' AND REVIEW_SCORE IS NOT NULL
GROUP BY I.REST_ID
ORDER BY SCORE DESC, FAVORITES DESC

 

두개의 테이블을 REST_ID (식당ID) 를 기준으로 JOIN 후 

주소가 서울인 식당만 추출하기 

데이터가 서울특별시, 서울시 두개로 혼합되어있어 맨 앞 두글자만 추출하였다.

 

서울에 위치한 식당만 추출 한 후 식당 ID를 기준으로 그룹화 하여 평점의 평균 구하기

이때 식당ID는 있지만 평점은 없는 식당목록이 있어 NOT NULL 인 식당만 추출하여 평균을 구하였다.

 

평점 기준을 세번째자리에서 (두번째자리 까지) 반올림 하기 위해 ROUND 함수이용.

 

마지막으로 정렬 기준에 따라 정렬하면 정답 추출 완료