해결된 질문
작성
·
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되겠지요.
제 서브쿼리와 종호님의 서브쿼리를 둘 다 실행해서 무슨 차이가 있는지 보시면 이해하실 수 있을 것 같아요. 두개의 차이를 살펴보셔요