프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
핵심
식당에 대한 리뷰 정보를 다루기 때문에 식당 테이블과 리뷰 테이블을 합친다.
JOIN : 두 테이블을 붙인다. (두 테이블의 속성을 모두 합친 테이블이 된다.)
USING : 해당 속성이 같은 행끼리 붙인다.
SELECT REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS
FROM REST_INFO AS INFO
LEFT JOIN REST_REVIEW AS RV
USING (REST_ID)
가게 별로 리뷰의 평균을 구한다. 점수가 없다면 제외하고 리뷰 평균점수는 소수점 세 번째 자리에서 반올림한다.
GROUP BY : 속성이 같은 행을 묶음
HAVING : GROUP BY 후의 조건
AVG : 평균
ROUND : 반올림
SELECT ... ROUND(AVG(RV.REVIEW_SCORE), 2) AS SCORE
...
GROUP BY REST_ID
HAVING SCORE IS NOT NULL
Code
SELECT REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(AVG(RV.REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO AS INFO
LEFT JOIN REST_REVIEW AS RV
USING (REST_ID)
WHERE AND ADDRESS LIKE '서울%'
GROUP BY REST_ID
HAVING SCORE IS NOT NULL
ORDER BY SCORE DESC, INFO.FAVORITES DESC;
728x90
반응형
'CS > SQL Problem' 카테고리의 다른 글
[Programmers] GROUP BY > 년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2024.08.05 |
---|---|
[Programmers] JOIN > 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2024.07.11 |
[Programmers] 조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.07.08 |
[Programmers] JOIN > 있었는데요 없었습니다 (0) | 2024.07.07 |
[Programmers] JOIN > 조건에 맞는 도서와 저자 리스트 출력하기 (0) | 2024.07.04 |