728x90
반응형
프로그래머스 SQL 고득점 키트 Lv.4
서울에 위치한 식당 목록 출력하기
문제
REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.
풀이
✅ ROUND(값, 자릿수): 0이면 소수점 첫째자리에서 반올림해서 정수로, 1이면 소수점 둘째자리에서 반올림해서 첫째자리까지 나타난다.
✅ GROUP BY와 HAVING 이용: '서울'에 위치한 식당을 찾아야 하므로, 주소가 '서울'로 시작하는 식당으로 그룹화해야 한다.
✅ LIKE : '서울%'이면 서울로 시작하는 문자열, '%서울%'은 어디에든 서울이 포함되는 문자열, '%서울'은 서울로 끝나는 문자열이다.
LIKE '서울특별시%' -> 오답: '서울시'라고 쓰기도 하기 때문
LIKE '%서울%' -> 오답: 가게 이름에 '서울'이 포함될 수 있다.
SELECT R.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS,
ROUND(AVG(REVIEW_SCORE), 2) as SCORE
FROM REST_INFO I JOIN REST_REVIEW R
ON I.REST_ID = R.REST_ID
GROUP BY R.REST_ID
HAVING I.ADDRESS LIKE '서울%'
ORDER BY SCORE DESC, FAVORITES DESC;
728x90
반응형