-
<프로그래머스> 서울에 위치한 식당 목록 출력하기코딩테스트/SQL 코딩테스트 2023. 12. 22. 22:14
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 문제 요구사항
- REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의
- 식당ID, 식당 이름, 음식 종류, 즐겨찾기 수, 주소, 리뷰 평균점수를 조회하는 SQL문을 작성
- 리뷰 평균은 소수점 세자리 수에서 반올림
- 결과는 리뷰 평균 점수 기준으로 내림차순 정렬
- 리뷰 평균 점수가 같다면 즐겨찾기 순으로 내림차순 정렬
REST_INFO, REST_REVIEW 두 테이블을 식당 ID를 기준으로 우선 내부 조인하고
서울에 위치한 식당만 찾아야하기 때문에 LIKE조건을 통해 서울로 시작하는 주소를 조건으로 함
리뷰점수는 식당 ID를 기준으로 GROUP BY 한 뒤 AVG()함수에 씌우는 것으로 평균을 구함
그리고 구한 평균에 다시 ROUND()함수를 씌우고, 파라미터를 2를 주는 것으로 소숫점 두 자리수까지 표기하게 반올림 함
이렇게 하면 소숫점 세 자리 수에서 반올림을 할 수 있음
1) Oracle
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 I INNER JOIN REST_REVIEW R ON I.REST_ID = R.REST_ID WHERE I.ADDRESS LIKE '서울%' GROUP BY I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS ORDER BY SCORE DESC, I.FAVORITES DESC;
2) MySQL
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 I INNER JOIN REST_REVIEW R ON I.REST_ID = R.REST_ID WHERE I.ADDRESS LIKE '서울%' GROUP BY 1 ORDER BY 6 DESC, 4 DESC;
'코딩테스트 > SQL 코딩테스트' 카테고리의 다른 글
<프로그래머스> 자동차 평균 대여 기간 구하기 (0) 2023.12.28 <프로그래머스> 년, 월, 성별 별 상품 구매 회원 수 구하기 (2) 2023.12.22 <프로그래머스> 취소되지 않은 진료 예약 조회하기 (0) 2023.12.22 <프로그래머스> 조건에 부합하는 중고거래 상태 조회하기 (1) 2023.12.22 <프로그래머스> 특정 옵션이 포함된 자동차 리스트 구하기 (0) 2023.12.22 - 문제 요구사항