해결된 질문
작성
·
51
0
안녕하세요!
단일(하나의 타입만 있는) 타입 포켓몬 중 많은 type1은 무엇일까요?
select type1, count(type1)
from basic.pokemon
where type1 is not null and type2 is null
group by type1
order by count(type1) desc
limit 10
단일 타입만 있다고 하니까
type1 is not null 도 조건에 걸어야 하지 않나요?
그냥 type2 is null 만 하면
type1도 null 이고 type2 도 null 인 값이 나올 수 있잖아요!
count(id)가 null 값은 안 세서 괜찮은 건가요..?
정확하게 하고 싶으면
where type1 is not null and type2 is null
이렇게 표현해도 될까요?
답변 1
0
안녕하세요.
type1은 모든 포켓몬이 값을 가지고 있는 컬럼입니다. 그래서 type1 is not null을 쓰지 않아도 값은 동일해요. SQL 쿼리를 작성할 때 해당 컬럼에 모든 값이 채워져 있는지, 혹은 NULL값이 있는지 확인해본 후 쿼리를 작성하면 되어요.
만약 type1에 NULL값이 있었다면, 말씀하신대로 표현하는 것이 정확한 값을 뽑을 수 있을 거예요. 지금 데이터에선 type1은 모두 다 값이 존재해서 해당 내용을 추가하지 않아도 괜찮구요