Sql
title: 2026-01-08 author: 강병호 (이름) date: 2026-01-08 (날짜) category: TIL/강병호/2026/01 (파일 경로 : TIL/{이름}/{연}/{월}) layout: post (자유) —
-
서울에 위치한 식당 목록 출력하기
문제 설명
- 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회
- 리뷰 평균 점수는 소수점 세 번째 자리에서 반올림
- 평균 점수를 기준으로 내림차순 정렬
- 그 다음 즐겨찾기 수 기준 내림차순 정렬
-
처음 코드
SELECT I.REST_ID AS REST_ID, I.REST_NAME AS REST_NAME, I.FOOD_TYPE AS FOOD_TYPE, I.FAVORITES AS FAVORITES, I.ADDRESS AS ADDRESS, ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO AS I, REST_REVIEW AS R WHERE ADDRESS LIKE '서울%' ORDER BY AVG(R.REVIEW_SCORE) DESC, FAVORITES DESC -
수정 코드
SELECT I.REST_ID AS REST_ID, I.REST_NAME AS REST_NAME, I.FOOD_TYPE AS FOOD_TYPE, I.FAVORITES AS FAVORITES, I.ADDRESS AS ADDRESS, ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE FROM REST_INFO AS I JOIN REST_REVIEW AS R ON I.REST_ID = R.REST_ID WHERE I.ADDRESS LIKE '서울%' GROUP BY I.REST_ID ORDER BY SCORE DESC, FAVORITES DESC
기존 코드의 문제점
JOOIN조건 누락 : 두 테이블을 연결하는 부분이 없음GROUP BY누락 : 식당별 평균ㅇ르 구해야하기에 묶어줘야함