Link
Tables
erDiagram
REST_INFO {
REST_ID VARCHAR PK
REST_NAME VARCHAR
FOOD_TYPE VARCHAR
VIEWS NUMBER
FAVORITES NUMBER
PARKING_LOT VARCHAR
ADDRESS VARCHAR
TEL VARCHAR
}
REST_REVIEW {
REVIEW_ID VARCHAR PK
REST_ID VARCHAR FK
MEMBER_ID VARCHAR
REVIEW_SCORE NUMBER
REVIEW_TEXT VARCHAR
REVIEW_DATE DATE
}
REST_INFO ||--o{ REST_REVIEW: REST_REVIEW
Mermaid
복사
Question
REST_INFO와 REST_REVIEW 테이블에서 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회하는 SQL문을 작성해주세요. 이때 리뷰 평균점수는 소수점 세 번째 자리에서 반올림 해주시고 결과는 평균점수를 기준으로 내림차순 정렬해주시고, 평균점수가 같다면 즐겨찾기수를 기준으로 내림차순 정렬해주세요.
DataFlow
•
like 서울
•
review score -> group by rest_id -> agg
•
review is not null 필요조건
Answer
SELECT
REST_ID,
REST_NAME,
FOOD_TYPE,
FAVORITES,
ADDRESS,
ROUND(AVG(REVIEW_SCORE), 2) AS SCORE
FROM (
SELECT
i.*,
r.REVIEW_SCORE
FROM REST_INFO i
LEFT JOIN REST_REVIEW r
ON i.REST_ID = r.REST_ID
WHERE i.ADDRESS LIKE "서울%"
AND r.REVIEW_SCORE IS NOT NULL
) result
GROUP BY REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS
ORDER BY ROUND(AVG(REVIEW_SCORE), 2) DESC, FAVORITES DESC
SQL
복사