작성
·
10
0
안녕하세요. 선생님,
총 정리 문제 풀이 4번을 강의를 보면서 쿼리를 따라 작성해봤는데 결과가 pokemon_cnt: 1, avg_level: 42.0으로 다르게 나오네요.. 몇 번을 다시 새로 써도 똑같은 결과가 나옵니다 ㅠㅠ
WITH winner_cnts AS (
SELECT
winner_id,
COUNT(winner_id) AS win_cnt
FROM basic.battle
WHERE
winner_id IS NOT NULL
GROUP BY
winner_id
), top_winner AS (
SELECT
wc.winner_id AS trainer_id,
wc.win_cnt,
t.name AS trainer_name
FROM winner_cnts AS wc
LEFT JOIN basic.trainer AS t
ON wc.winner_id = t.id
ORDER BY
wc.win_cnt DESC
LIMIT 1
)
SELECT
tw.trainer_id,
tw.trainer_name,
tw.win_cnt,
COUNT(tp.pokemon_id) AS pokemon_cnt,
ROUND(AVG(tp.level),2) AS avg_level
FROM top_winner AS tw
LEFT JOIN basic.trainer_pokemon AS tp
ON tw.trainer_id = tp.id
WHERE
tp.status IN("Active", "Training")
GROUP BY
tw.trainer_id,
tw.trainer_name,
tw.win_cnt
답변 1
0
안녕하세요.
오타가 있네요.
tw.trainer_id = tp.id
7분 50초 쯤을 잘 보시면 아래와 같이 말씀드렸습니다.
tw.trainer_id = tp.trainer_id
대부분 오타 때문에 발생하는 경우가 많답니다. 발표 자료의 코드 부분을 보시면 코드가 있어서, 그 코드를 보시면서 확인해보셔도 좋을 것 같아요