https://school.programmers.co.kr/learn/courses/30/lessons/131118
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제분석
REST_REVIEW
를 활용해식당별로 평균 점수를 매김(REST_ID
와AVG_SCORE
만 세팅)- 1에서의 ID와
REST_INFO
의 ID를 매칭한 후, 원하는 컬럼만 표시 - 추가적인 정렬 작업
(리뷰 평균점수는 소수점 세 번째 자리에서 반올림. 결과는 평균점수를 기준으로 내림차순 정렬. 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬)
해결과정
1.
SELECT REST_ID, AVG(REVIEW_SCORE) AS AVG_SCORE
FROM REST_REVIEW
GROUP BY REST_ID;
2.
SELECT info.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(sub.SCORE,2) AS SCORE
FROM REST_INFO info
INNER JOIN (
SELECT REST_ID, AVG(REVIEW_SCORE) AS SCORE
FROM REST_REVIEW
GROUP BY REST_ID) AS sub
ON info.REST_ID = sub.REST_ID;
3.
SELECT info.REST_ID
, info.REST_NAME
, info.FOOD_TYPE
, info.FAVORITES
, info.ADDRESS
, ROUND(sub.SCORE,2) AS SCORE
FROM REST_INFO info
INNER JOIN (
SELECT REST_ID
, AVG(REVIEW_SCORE) AS SCORE
FROM REST_REVIEW
GROUP BY REST_ID
) sub
ON info.REST_ID = sub.REST_ID
WHERE info.ADDRESS LIKE '서울%'
ORDER BY sub.SCORE DESC
, info.FAVORITES DESC;
WHERE에 '%서울%'을 입력했을때와 '서울%'을 입력했을때, 전자는 오답이고 후자는 정답이다.
전자는 [서울] 이 문자열 중 아무데나 존재하면 True
후자는 [서울] 로 시작해야만 True이다.
그런데, [서울특별시..] 혹은 [서울시..] 일때만 서울이 들어가지 않나..? 혹은 서울이 들어가기만 하면 서울에 존재하는 식당 아닐까?
경기도 성남시 서울로? 서울군? 이건 말이 안되지 않나..생각이 들었다.
'알고리즘&백준 > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 59045 보호소에서 중성화한 동물 (0) | 2025.01.17 |
---|---|
[SQL] 프로그래머스 59043 있었는데요 없었습니다 (0) | 2025.01.16 |
[SQL] 프로그래머스 59042 없어진 기록 찾기 (0) | 2025.01.12 |
[SQL] 프로그래머스 131533 상품 별 오프라인 매출 구하기 (0) | 2025.01.12 |
[SQL] SQL 기초 문법 정리 (0) | 2025.01.08 |