[SQL 문제 풀기] 서울에 위치한 식당 목록 출력하기(131118)

lhs's avatar
Jan 25, 2025
[SQL 문제 풀기] 서울에 위치한 식당 목록 출력하기(131118)
 

1. 문제 풀이 아이디어

  • 서울 지역 음식점 정보를 결합하고, 평균 리뷰 점수를 계산한 뒤 정렬하면 문제를 해결할 수 있다.

2. 나의 정답 코드

SELECT rest_id, rest_name, food_type, favorites, address, ROUND(AVG(review_score), 2) score FROM rest_info NATURAL JOIN rest_review WHERE address LIKE '서울%' GROUP BY rest_id HAVING score IS NOT NULL ORDER BY score DESC, favorites DESC;

3. 정리

  • NATURAL JOIN을 사용해 rest_inforest_review 테이블을 결합한다.
  • WHERE 절에서 주소가 '서울'로 시작하는 음식점만 필터링한다.
  • GROUP BY 절로 rest_id를 기준으로 그룹화하여 음식점별로 데이터를 집계한다.
  • AVG 함수를 사용해 각 음식점의 평균 리뷰 점수를 계산하고 ROUND 함수를 통해 소수점 둘째 자리까지 반올림한다.
  • HAVING 절을 이용해 계산된 평균 점수가 NULL이 아닌 행만 필터링한다.
  • ORDER BY 절을 통해 점수를 기준으로 내림차순 정렬하고, 점수가 동일한 경우 favorites 값을 기준으로 내림차순 정렬한다.
 
Share article

LHS's Study Space