ROUND, AVG, GROUP BY, JOIN, LIKE 이용하기
https://school.programmers.co.kr/learn/courses/30/lessons/131118
SELECT a.REST_ID,
a.REST_NAME,
a.FOOD_TYPE,
a.FAVORITES,
a.ADDRESS,
ROUND(AVG(b.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO a
JOIN REST_REVIEW b
ON a.REST_ID = b.REST_ID
WHERE a.ADDRESS LIKE '서울%'
GROUP BY a.REST_ID
ORDER BY SCORE DESC, FAVORITES DESC;
SELECT
a.REST_ID,
a.REST_NAME,
a.FOOD_TYPE,
a.FAVORITES,
a.ADDRESS,
ROUND(AVG(b.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO a
JOIN REST_REVIEW b
ON a.REST_ID = b.REST_ID
WHERE a.ADDRESS LIKE '서울%'
GROUP BY 1
ORDER BY 6 DESC, 4 DESC;
문제 사항 1 : 모든 것을 제대로 작성했다고 생각했지만 정답 처리가 되지 않았다. 문제는 주소에 대해 '서울' 인지 확인하는 조건을 빠뜨렸다는 것이었다.
문제 사항 2: '서울' 인지 확인하는 조건을 추가하여도 정답 처리가 되지 않았다. 또 다른 문제는 AVG(b.REVIEW_SCORE) 를 하기 위해서는 어떤 것을 기준으로 REVIEW_SCORE 의 평균을 구할 것인지를 처리해줘야 한다는 것이다.
문제 사항 1 해결 : 주소에 대해 '서울' 의 음식점인지를 확인하는 조건을 추가하였다.
문제 사항 2 해결 : 기준점을 REST_ID 로 잡아서 REST_ID 로 GROUP BY 를 해주어 정답 처리를 받았다.
깨달은 바 : 항상 문제를 제대로 꼼꼼히 읽자고 다짐하지만, 잘 되지 않는다. 다시 한 번 문제를 제대로 읽자고 다짐한다. 또한, GROUP BY 를 이용하여 필요한 그룹화를 잘 하도록 하자.
'코딩테스트 > programming_SQL' 카테고리의 다른 글
[SQL] 주문량이 많은 아이스크림들 조회하기_133027 (1) | 2023.11.17 |
---|---|
[SQL] 우유와 요거트가 담긴 장바구니도움말_62284 (0) | 2023.11.17 |
[SQL] 년, 월, 성별 별 상품 구매 회원 수 구하기_131532 (0) | 2023.11.17 |
[SQL] 취소되지 않은 진료 예약 조회하기_132204 (0) | 2023.11.17 |
[SQL] 5월 식품들의 총매출 조회하기_131117 (1) | 2023.11.17 |