728x90
코드 힌트
1. JOIN을 사용한 데이터 결합
- REST_INFO 테이블과 REST_REVIEW 테이블을 JOIN하여 연결된 데이터를 조회합니다.
- REST_ID를 기준으로 두 테이블을 결합하여 리뷰와 식당 정보를 함께 출력합니다.
2. 주소 필터링
- WHERE 절에서 LIKE '서울%'을 사용하여 주소가 '서울'로 시작하는 식당만 필터링합니다.
- LIKE는 특정 패턴과 일치하는 값을 필터링할 때 사용됩니다.
3. 평균 리뷰 점수 계산
- AVG 함수를 사용하여 각 식당의 평균 리뷰 점수를 계산합니다.
- ROUND(AVG(...), 2)로 평균을 소수점 둘째 자리까지 반올림하여 표시합니다.
4. 그룹화된 데이터 정렬
- GROUP BY로 각 식당을 그룹화하여 해당 그룹의 평균 리뷰 점수를 구합니다.
- ORDER BY SCORE DESC, FAVORITES DESC로 평균 리뷰 점수를 기준으로 내림차순 정렬하며, 동일한 점수일 경우 즐겨찾기 수 기준으로 추가 정렬합니다.
정답은 더보기 클릭
더보기
더보기
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE), 2) AS SCORE
-- 식당 ID, 이름, 음식 종류, 즐겨찾기 수, 주소, 리뷰 점수 평균을 소수점 2자리로 반올림하여 조회
FROM REST_INFO I
JOIN REST_REVIEW R
-- REST_INFO 테이블과 REST_REVIEW 테이블을 식당 ID를 기준으로 조인
ON I.REST_ID = R.REST_ID
-- 조인 조건: 식당 ID가 동일한 데이터 연결
WHERE I.ADDRESS LIKE '서울%'
-- 주소가 '서울'로 시작하는 식당만 조회
GROUP BY I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS
-- 각 식당의 ID, 이름, 음식 종류, 즐겨찾기 수, 주소를 기준으로 그룹화
ORDER BY SCORE DESC, I.FAVORITES DESC
-- 평균 리뷰 점수 기준으로 내림차순 정렬, 리뷰 점수가 동일할 경우 즐겨찾기 수 기준으로 추가 정렬
728x90
'프로그래머스(Oracle)' 카테고리의 다른 글
[프로그래머스 (Oracle)] 즐겨찾기가 가장 많은 식당 정보 출력하기 (1) | 2024.10.05 |
---|---|
[프로그래머스 (Oracle)] 취소되지 않은 진료 예약 조회하기 (2) | 2024.10.05 |
[프로그래머스 (Oracle)] 5월 식품들의 총매출 조회하기 (0) | 2024.10.03 |
[프로그래머스 (Oracle)] 조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 (1) | 2024.10.02 |
[프로그래머스 (Oracle)] 조건에 부합하는 중고거래 상태 조회하기 (0) | 2024.10.02 |