인프런 커뮤니티 질문&답변

Roeniss Moon님의 프로필 이미지
Roeniss Moon

작성한 질문수

초보자를 위한 BigQuery(SQL) 입문

5-6. JOIN 연습 문제 1~2번

5-6 의 Join 문제 2 해설이 일부 이해가 되지 않습니다

해결된 질문

작성

·

166

0

안녕하세요. 5-6 JOIN 연습문제 2번 중, 18:30 쯤에서 group by type1 을 하셨는데 여기 group by pokemon_Cnt (= tp.id) 여야 하지 않는지요?

답변 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을 사용해서 그룹화를 해야 하지요!

Roeniss Moon님의 프로필 이미지
Roeniss Moon
질문자

아, 문제를 제가 잘못 읽었던 것 같아요. 감사합니다!

카일스쿨님의 프로필 이미지
카일스쿨
지식공유자

넵 문제는 "2. 각 트레이너가 가진 포켓몬 중에서 'Grass' 타입의 포켓몬 수를 계산해주세요" 였어요. 트레이너가 가진 포켓몬 = trainer_pokemon 테이블을 사용해야 한다는 것을 위해 드린 문장이에요!

Roeniss Moon님의 프로필 이미지
Roeniss Moon

작성한 질문수

질문하기