• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

(Hacker Rank)Binary Tree 문제 질문

23.01.26 14:41 작성 23.01.26 14:41 수정 조회수 190

0

Leaf는 자식이 없다는 것을 이용해서

두 번째 조건으로 P의 값과 N이 같지 않을 때 'Leaf' 로 출력 되도록 아래와 같은 쿼리로 작성해 보았습니다.

 

 

근데 Leaf가 출력 되지 않는 오답이 나오는데, 이유가 뭘까요?

위와 같은 조건으로 쿼리를 작성하려면 어떻게 작성해야 하는지도 궁금합니다!

답변 1

답변을 작성해보세요.

0

not in ()은 괄호 안에 들어가는 값 중 null이 있으면 동작하지 않습니다.
(참고 문서: https://stackoverflow.com/questions/5231712/sql-not-in-not-working)

여기서도 p 컬럼의 값 중 null이 있기 때문에 오류가 납니다.
그러므로 아래 쿼리와 같이 null을 제외해 주어야 합니다.

select n
, (case when p is null then 'Root'
        when n not in (select distinct p from bst) then 'Leaf'
        else 'Inner' end) as node_type
from bst
order by n