SQL/SELECT

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

이런개발 2025. 3. 5. 10:07

https://school.programmers.co.kr/learn/courses/30/lessons/131118

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제 풀이

  1. REST_INFO 테이블과 REST_REVIEW 테이블을 조인한다.
    1. 이때 REST_REVIEW 테이블에서 식당별 리뷰 평균점수를 구해야 하기 때문에 그냥 조인하면 안 되고, 서브쿼리를 사용한다.
    2. GROUP BY로 식당별로 그룹핑해주고, 그룹핑된 식당의 리뷰 평균 점수를 ROUND와 AVG 키워드를 사용해서 구한다.
    3. 이렇게 서브쿼리로 구해진 임시 리뷰 평균 점수 테이블과 조인한다.
  2. 서울에 위치한 행을 필터링한다.
  3. 평균점수를 기준으로 내림차순, 즐겨찾기수를 기준으로 내림차순 정렬한다.
SELECT
    A.REST_ID,
    A.REST_NAME,
    A.FOOD_TYPE,
    A.FAVORITES,
    A.ADDRESS,
    B.SCORE
FROM 
    REST_INFO AS A
        JOIN (SELECT REST_ID, ROUND(AVG(REVIEW_SCORE), 2) AS SCORE
              FROM REST_REVIEW
              GROUP BY REST_ID) AS B 
        ON A.REST_ID = B.REST_ID
WHERE
    A.ADDRESS LIKE '서울%'
ORDER BY
    6 DESC, 4 DESC