서울에 위치한 식당 목록 출력하기

지환·2023년 12월 6일
0

Sql-문제풀이

목록 보기
5/5
post-thumbnail

처음 생각 방향

  • 서울에 위치한 식당들의 식당 ID, 식당 이름, 음식 종류, 즐겨찾기수, 주소, 리뷰 평균 점수를 조회한다.
SELECT REST_ID, REST_NAME, FOOD_TYPE, FAVORITES, ADDRESS, round(AVG(REVIEW_SCORE),-1)

FROM REST_INFO ri inner join REST_REVIEW rr
on ri.REST_ID = rr.REST_ID

order by round(AVG(REVIEW_SCORE),-1) desc, FAVORITES desc 인데 

(답) 생각한 방향

  • 리뷰 평균점수는 소수점 세 번째 자리에서 반올림한다.

  • 결과는 평균점수를 기준으로 내림차순 정렬하고, 평균점수가 같다면 즐겨찾기 수를 기준으로 내림차순정렬해라

  • 인라인뷰를 이용해야하는것인가?
    -> 인라인뷰와 별칭을 이용해서 값을 뽑아내야함 || round : 반올림 사용
    -> gruop by를 사용하지 않으면 오류가 발생함 -> Rest_ID로 하나로 묶어줌
    -> inner join으로 사용하려면 별칭 값은 당연히 줘야 되는 부분임.
    -> 서울로 시작하는 테이블을 검색 하는 것이기 떄문에 where 절에 대한 처리는 Like % 이용해서 작성함.

SELECT rr.REST_ID, ri.REST_NAME, ri.FOOD_TYPE, ri.FAVORITES, ri.ADDRESS, rr.SCORE
FROM REST_INFO ri inner join (SELECT REST_ID, round(AVG(REVIEW_SCORE),2) as SCORE from REST_REVIEW group by REST_ID)rr
on ri.REST_ID = rr.REST_ID 
where ri.ADDRESS Like '서울%'
order by rr.SCORE desc, ri.FAVORITES desc
profile
아는만큼보인다.

0개의 댓글