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

2025. 3. 5. 10:07·SQL/SELECT

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

'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
'SQL/SELECT' 카테고리의 다른 글
  • [프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기
  • [프로그래머스 SQL] Lv.4 - 오프라인/온라인 판매 데이터 통합하기
  • [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 2
  • [프로그래머스 SQL] Lv.3 - 대장균의 크기에 따라 분류하기 1
이런개발
이런개발
geun-00의 흔적 보관소
  • 이런개발
    내일이 기대되는 오늘
    이런개발
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 백엔드 면접
      • SQL N
        • SUM, MAX, MIN
        • SELECT
        • GROUP BY
        • JOIN
      • Spring
      • JPA
      • 트러블슈팅
      • Infra
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    자바
    오블완
    데브코스
    raid
    JPA
    티스토리챌린지
    스프링
    토스 페이먼츠
    백엔드 면접
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
이런개발
[프로그래머스 SQL] Lv.4 - 서울에 위치한 식당 목록 출력하기
상단으로

티스토리툴바