부제:
서울에 위치한 식당 목록 출력하기, 레벨 4
1. 문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/131118
2. 정답 코드:
SELECT
ri.rest_id,
ri.rest_name,
ri.food_type,
ri.favorites,
ri.address,
round(avg(rr.review_score), 2) as score
FROM rest_info as ri
inner join rest_review as rr
on ri.rest_id = rr.rest_id
where ri.address like ("서울%")
group by ri.rest_id
order by
score desc,
ri.favorites desc;
3. 오류 상황:
SELECT
ri.rest_id,
ri.rest_name,
ri.food_type,
ri.favorites,
ri.address,
round(sum(rr.review_score) / count(rr.review_score), 2) as score
FROM rest_info as ri
inner join rest_review as rr
on ri.rest_id = rr.rest_id
group by ri.rest_id
order by
score desc,
ri.favorites desc;
=> WHERE 절 부재
=> 평균 점수 계산 방식
4. 시도 방법:
=> WHERE 절 추가
=> AVG() 함수 사용
5. 최종 문제 해결 방법:
=> 문제에서 "서울에 위치한 식당"이라는 조건이 주어졌기에 ri.address 컬럼에서 '서울'로 시작하는 데이터를 찾기 위해 LIKE 연산자를 활용
=> AVG(rr.review_score)를 사용하면 훨씬 간결하게 평균 계산 가능
'SQL 알고리즘 코드카타' 카테고리의 다른 글
| SQL 알고리즘 코드카타 20일차(4) 26.01.18(일) (0) | 2026.01.18 |
|---|---|
| SQL 알고리즘 코드카타 20일차(3) 26.01.18(일) (1) | 2026.01.18 |
| SQL 알고리즘 코드카타 20일차(1) 26.01.18(일) (0) | 2026.01.18 |
| SQL 알고리즘 코드카타 19일차(5) 26.01.17(토) (0) | 2026.01.17 |
| SQL 알고리즘 코드카타 19일차(4) 26.01.17(토) (0) | 2026.01.17 |