프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 설명
- 레스토랑 정보가 담긴 REST_INFO 테이블과, 리뷰 정보가 담긴 REST_REVIEW 테이블
- 레스토랑의 정보와 리뷰 점수의 평균을 소수점 세번째 자리에서 반올림해서 출력
- 서울 지역의 레스토랑이어야 함
- 평점 내림차순 및 평점이 같은경우 좋아요 개수에 대해 내림차순
코드
SELECT I.REST_ID, I.REST_NAME, I.FOOD_TYPE, I.FAVORITES, I.ADDRESS, ROUND(AVG(V.REVIEW_SCORE),2) AS SCORE
FROM REST_INFO I, REST_REVIEW V
WHERE I.REST_ID = V.REST_ID AND I.ADDRESS LIKE '서울%'
GROUP BY I.REST_ID
ORDER BY SCORE DESC, I.FAVORITES DESC;
코드 설명
- 레스토랑 정보 SELECT, 리뷰 평점을 AVG()메소드를 이용해 계산
- 소수점 세번째 자리에서 반올림이니 소수점 두 번째 자리까지 출력되도록 ROUND(X,2)사용
- WHERE절에 JOIN 조건 작성
- WHERE절에 LIKE 메소드 사용해서 주소가 '서울'인 컬럼 출력
- ORDER BY절에서 평점에 대해 내림차순, 좋아요 순에 대해 내림차순 (DESC)
관련 개념
LIKE 메소드
COLUMN_NAME LIKE
- % : 모든 문자의 0번 이상 반복
- _ : 모든 문자 1번
- 따라서 이를 이용해서, 주소가 서울인 것을 출력하려면
ADDRESS LIKE '서울%'
- 다른 예시로, '00시'라는 단어를 출력하려면
ADDRESS LIKE '__시'
_
는 한 문자와 매칭되므로, 4개의 단어를 표현하려면 4번 적으면 된다.- 다른 예시로, '경'으로 시작하고 '도'로 끝나는 네 글자 단어를 출력하려면,
ADDRESS LIKE '경__도'
- LIKE 뒤에 매칭할 문자를 적을 때는, 따옴표 안에 넣어 STRING으로 표시해줘야 한다.
'SQL' 카테고리의 다른 글
[프로그래머스 SQL KIT] SELECT#1 - 특정 세대의 대장균 찾기 (0) | 2025.04.08 |
---|---|
[SQL] NULL 값 변환하기 - IFNULL, COALESCE (1) | 2025.01.28 |
[SQL] DATE TYPE 다루기 - 특정 일자 조회하기 DATE_FORMAT, YEAR(), MONTH(), (0) | 2025.01.28 |
[프로그래머스 SQL KIT] JOIN #6 - 그룹별 조건에 맞는 식당 목록 출력 (1) | 2025.01.28 |
[프로그래머스 SQL KIT] JOIN #5 - FrontEnd 개발자 찾기 : bit 연산 (1) | 2025.01.28 |