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
문제 풀이
- REST_INFO 테이블과 REST_REVIEW 테이블을 조인한다.
- 이때 REST_REVIEW 테이블에서 식당별 리뷰 평균점수를 구해야 하기 때문에 그냥 조인하면 안 되고, 서브쿼리를 사용한다.
- GROUP BY로 식당별로 그룹핑해주고, 그룹핑된 식당의 리뷰 평균 점수를 ROUND와 AVG 키워드를 사용해서 구한다.
- 이렇게 서브쿼리로 구해진 임시 리뷰 평균 점수 테이블과 조인한다.
- 서울에 위치한 행을 필터링한다.
- 평균점수를 기준으로 내림차순, 즐겨찾기수를 기준으로 내림차순 정렬한다.
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