인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

박종호님의 프로필 이미지

작성한 질문수

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

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

JOIN 1번 문제

해결된 질문

작성

·

40

0

JOIN 1번 문제를 풀이하던 도중 강사님의 쿼리문과 제가 작성한 것의 차이가 궁금해서 문의 드립니다.!

저는 해당 결과를 출력했을때, 166행이 출력되는데 강사님은 158행이 출력되어 어떤부분을 제가 누락시켰는지 궁금합니다. ㅠ

select
  p.kor_name as pokemon_name,
  tp.pokemon_cnt
from
(
  select
    pokemon_id,
    countif(status in ('Active','Training')) as pokemon_cnt
  from basic.trainer_pokemon
  group by pokemon_id

) as tp
left join basic.pokemon as p
on p.id = tp.pokemon_id
order by
  pokemon_cnt desc

답변 1

0

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

종호님 안녕하세요.

일단 저는 강의에서 WHERE 절에 status의 조건을 걸었고, 그 데이터를 가지고 집계를 했습니다. 종호님은 COUNTIF를 사용하셨네요. 그래서 결과가 다를 수 밖에 없습니다. 지금 해당 서브쿼리는 status가 Active, Training이 아닌 것들도 포함되어 있을겁니다. 그래서 JOIN할 때 더 많은 데이터가 JOIN되겠지요.

 

제 서브쿼리와 종호님의 서브쿼리를 둘 다 실행해서 무슨 차이가 있는지 보시면 이해하실 수 있을 것 같아요. 두개의 차이를 살펴보셔요