[프로그래머스] LEVEL4 서울에 위치한 식당 목록 출력하기
- 공통된 컬럼을 가진 두 테이블 조인하기
- GROUP BY를 사용하여 그룹별 집계하기
- HAVING을 사용하여 그룹별 집계한 데이터의 조건 넣기
위 문제에서는 조건에 2가지 정도 함정이 있는데 서울에 위치한 주소를 찾기 위하여 ADDRESS LIKE '%서울%'과 같이 사용해서는 안됩니다. '부산광역시 서울로 00000'과 같은 테스트 데이터가 있기 때문에 주소가 서울시 혹은 서울특별시로 시작하는 데이터만 추출해야 합니다.
또한 리뷰가 없는 식당의 경우 JOIN 이후에 SCORE 컬럼의 데이터가 NULL입니다. SCORE IS NOT NULL을 사용하여 리뷰가 없는 식당은 조회하지 않도록 주의해야 합니다.
SELECT I.REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, ROUND(AVG(REVIEW_SCORE), 2) AS SCORE
FROM REST_INFO AS I
LEFT JOIN REST_REVIEW AS R
ON I.REST_ID = R.REST_ID
GROUP BY REST_ID
HAVING ADDRESS LIKE '서울%' AND SCORE IS NOT NULL
ORDER BY SCORE DESC, VIEWS DESC
SELECT 컬럼
FROM 테이블1
LEFT JOIN 테이블2
ON 조건(테이블1.컬럼 = 테이블2.컬럼)