코딩테스트 연습 - 서울에 위치한 식당 목록 출력하기
링크 : https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 설명
문제 풀이
생각 과정
우선 테이블이 두개이므로 JOIN을 사용하자
SELECT
FROM REST_INFO AS I
JOIN REST_REVIEW AS R
ON I.REST_ID = R.REST_ID
그리고 원하는 결과값들을 SELECT에 적어준다.
조건으로 있는 주소가 서울로 시작해야한다는 것도 작성해준다.
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS
FROM REST_INFO AS I
JOIN REST_REVIEW AS R
ON I.REST_ID = R.REST_ID
WHERE ADDRESS LIKE '서울%'
이제 리뷰 평균점수를 구해야한다.
여기서 GROUP BY로 같은 식당ID면 그룹화 시켜주고 그 그룹들의 리뷰평균을 구하면 될 것이다.
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.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 ADDRESS LIKE '서울%'
GROUP BY REST_ID
그리고 마지막으로 정렬조건을 작성해주면 끝이다.
구현
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.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 ADDRESS LIKE '서울%'
GROUP BY REST_ID
ORDER BY SCORE DESC, FAVORITES DESC;
LEVEL4의 난이도라길래 겁먹었는데 LEVEL1의 문제들에서 사용한 것을 다 모아놓은 느낌이라서
크게 어려운 문제는 아니었던 것 같다.
'공부 일지 > 문제풀이' 카테고리의 다른 글
[프로그래머스] 없어진 기록 찾기 (MySQL) (0) | 2023.12.04 |
---|---|
[프로그래머스] 오프라인/온라인 판매 데이터 통합하기 (MySQL) (1) | 2023.11.22 |
[프로그래머스] 조건에 부합하는 중고거래 댓글 조회하기 (MySQL) (0) | 2023.11.21 |
[프로그래머스] 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기(MySQL) (0) | 2023.11.17 |
[프로그래머스] 동명 동물 수 찾기(MySQL) (0) | 2023.11.15 |