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'SQL > SELECT' 카테고리의 다른 글
| [프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기 (0) | 2025.03.06 |
|---|---|
| [프로그래머스 SQL] Lv.4 - 오프라인/온라인 판매 데이터 통합하기 (0) | 2025.03.06 |
| [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 2 (2) | 2025.03.04 |
| [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 1 (0) | 2025.03.04 |
| [프로그래머스 SQL] Lv.3 - 대장균들의 자식의 수 구하기 (0) | 2025.03.04 |