코테/프로그래머스

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

imname1am 2023. 10. 11. 00:52
반응형

🔺 문제

 

프로그래머스

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

programmers.co.kr

 

 

🔺 코드

1
2
3
4
5
6
7
SELECT   A.REST_ID, A.REST_NAME, A.FOOD_TYPE, A.FAVORITES, ADDRESS,
         ROUND(AVG(B.REVIEW_SCORE), 2) AS SCORE
FROM     REST_INFO A, REST_REVIEW B
WHERE    A.REST_ID = B.REST_ID
    AND ADDRESS LIKE '서울%'
GROUP BY REST_ID
ORDER BY SCORE DESC, A.FAVORITES DESC;
cs

 

소수점 세 번째 자리에서 반올림 ⇨ ROUND(값, 2)

 

 


🔺 다른 풀이들

- (INNER) JOIN과 HAVING 절을 활용하셨다.

 

[SQL연습] 서울에 위치한 식당 목록 출력하기 - 프로그래머스

문제링크리뷰에 대해 식당 데이터를 JOIN 연산한다.식당번호를 기준으로 GROUP BY 연산하고, ROUND, AVG 함수를 원하는 결과값을 얻는다.GROUP BY에 대해 조건을 걸기 위해 HAVING과 LIKE를 이용하여 서울

velog.io

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

 


💬 느낀 점

- WHERE절 : 모든 필드에 조건 설정 (GROUP BY로 묶기 전 필터링)

- HAVING절 : GROUP BY가 된 후, 그룹화된 테이블에 조건 설정

- ROUND(값, 원하는 소수점 자리수) : 소수점 자릿수 반올림

 

흠 나는 HAVING절 안 쓰고 풀었는디

다른 분들 풀이가 맞는 것 같다.

 

JOIN문과 HAVING 절과 친해지장

 

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[프로그래머스] SQL 문제풀이 - 서울에 위치한 식당 목록 출력하기

https://school.programmers.co.kr/learn/courses/30/lessons/131118 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞

whdgus928.tistory.com

 

반응형