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 누락 : 식당별 평균ㅇ르 구해야하기에 묶어줘야함

results matching ""

    No results matching ""