해결된 질문
작성
·
166
답변 1
0
안녕하세요! 해당 문제의 답을 추상화하면 다음과 같습니다
SELECT
p.type1,
COUNT(tp.id) AS pokemon_cnt
FROM Table_a(서브쿼리)
LEFT JOIN Table_b
ON Table_a.pokemon_id = Table_b.id
WHERE type1 = "Grass"
GROUP BY
type1
GROUP BY <그룹화할 컬럼>이 들어가야 하므로 type1을 명시해야 type1에 대해 GROUP BY를 해서, pokemon_cnt가 나온답니다. 왜 pokemon_cnt가 되어야 한다고 생각하시나요?(이 이유를 말씀해주시면 더 잘 설명드릴 수 있을 것 같아요. pokemon_cnt를 넣으시면 실행이 안될거에요)
COUNT 같은 집계 함수는 GROUP BY에 들어가지 않습니다. SELECT를 하면서 type1을 사용해서 그룹화를 해야 하지요!
넵 문제는 "2. 각 트레이너가 가진 포켓몬 중에서 'Grass' 타입의 포켓몬 수를 계산해주세요" 였어요. 트레이너가 가진 포켓몬 = trainer_pokemon 테이블을 사용해야 한다는 것을 위해 드린 문장이에요!
아, 문제를 제가 잘못 읽었던 것 같아요. 감사합니다!