728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/131118
정답 코드
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(R.REVIEW_SCORE),2)
FROM REST_INFO AS I INNER JOIN REST_REVIEW AS R on I.REST_ID = R.REST_ID
WHERE I.ADDRESS LIKE '서울%'
GROUP BY R.REST_ID
ORDER BY ROUND(AVG(R.REVIEW_SCORE),3) DESC, FAVORITES DESC;
SELECT A.REST_ID, B.REST_NAME, B.FOOD_TYPE, B.FAVORITES, B.ADDRESS, ROUND(AVG(A.REVIEW_SCORE),2) AS SCORE
FROM REST_REVIEW A
JOIN REST_INFO B ON A.REST_ID = B.REST_ID
GROUP BY A.REST_ID
HAVING B.ADDRESS LIKE '서울%'
ORDER BY SCORE DESC, B.FAVORITES DESC
SQL 쿼리에서는 다음과 같은 순서를 따르는 것이 일반적입니다:
- SELECT
- FROM
- WHERE
- GROUP BY
- HAVING
- ORDER BY
WHERE과 HAVING의 차이
- WHERE 절:
- WHERE 절은 행을 필터링하는 데 사용됩니다. 쿼리에서 WHERE 절은 특정 조건을 만족하는 행만을 선택합니다. 예를 들어, 특정 열의 값이 특정 범위에 있거나 특정 조건을 만족하는 행을 선택할 수 있습니다.
- HAVING 절:
- HAVING 절은 그룹화된 결과를 필터링하는 데 사용됩니다. 쿼리에서 GROUP BY 절로 그룹화된 결과를 사용하고, HAVING 절을 사용하여 그룹화된 결과에서 조건을 지정하여 그룹을 필터링할 수 있습니다. HAVING 절은 집계 함수와 함께 사용되어 집계된 결과를 필터링할 때 주로 사용됩니다.
HAVING을 쓴 풀이가 더 적절한듯
728x90
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[MySQL] 프로그래머스 131537. 오프라인/온라인 판매 데이터 통합하기 (0) | 2024.02.20 |
---|---|
[MySQL] 프로그래머스 131536. 재구매가 일어난 상품과 회원 리스트 구하기 (0) | 2024.02.20 |
[MySQL] 프로그래머스 164673. 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.02.20 |
[MySQL] 프로그래머스 151136. 평균 일일 대여 요금 구하기 (0) | 2024.02.20 |
[MySQL] 프로그래머스 144853. 조건에 맞는 도서 리스트 출력하기 (0) | 2024.02.20 |