Problem Solving/프로그래머스

[MySQL] 프로그래머스 131118. 서울에 위치한 식당 목록 출력하기

LeeJaeJun 2024. 2. 20. 21:55
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131118

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

정답 코드
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 쿼리에서는 다음과 같은 순서를 따르는 것이 일반적입니다:

  1. SELECT
  2. FROM
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. ORDER BY

 

WHERE과 HAVING의 차이

  1. WHERE 절:
    • WHERE 절은 행을 필터링하는 데 사용됩니다. 쿼리에서 WHERE 절은 특정 조건을 만족하는 행만을 선택합니다. 예를 들어, 특정 열의 값이 특정 범위에 있거나 특정 조건을 만족하는 행을 선택할 수 있습니다.
  2. HAVING 절:
    • HAVING 절은 그룹화된 결과를 필터링하는 데 사용됩니다. 쿼리에서 GROUP BY 절로 그룹화된 결과를 사용하고, HAVING 절을 사용하여 그룹화된 결과에서 조건을 지정하여 그룹을 필터링할 수 있습니다. HAVING 절은 집계 함수와 함께 사용되어 집계된 결과를 필터링할 때 주로 사용됩니다.

HAVING을 쓴 풀이가 더 적절한듯

728x90
반응형