알고리즘 문제 풀이/프로그래머스

[SQL 고득점 Kit] SELECT - 서울에 위치한 식당 목록 출력하기

파란색 가운 2024. 6. 26. 23:44

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

 

프로그래머스

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

programmers.co.kr

난이도 : 중 ~ 중하

LV4 치곤 쉬웠지만

테이블이 길어서 맨 왼쪽 항목 1개를 자꾸 놓쳐서 왜 안되나 10번 고민했는데 답 보고 아,,했다

 

SELECT REST_INFO.REST_ID,REST_INFO.REST_NAME,REST_INFO.FOOD_TYPE,REST_INFO.FAVORITES,REST_INFO.ADDRESS, ROUND(AVG(REST_REVIEW.REVIEW_SCORE),2) AS "SCORE"
FROM REST_INFO 
JOIN REST_REVIEW 
ON REST_INFO.REST_ID = REST_REVIEW.REST_ID AND REST_INFO.ADDRESS LIKE "서울%"
GROUP BY REST_INFO.REST_ID
ORDER BY ROUND(AVG(REST_REVIEW.REVIEW_SCORE),2) DESC, REST_INFO.FAVORITES DESC;

그래도 답보고 한거 없어서 뿌듯

사실 JOIN에서는 기본키 - 외래키 조건만 사용하고

GROUP BY -> HAVING에서 ADDRESS 조건을 넣어주는게 더 깔끔할 것 같다

 

1. ROUND 함수 -> 반올림 (원하는 자리수 지정 가능)

2. REST_ID별로 GROUP을 지어서 AVG 내기