inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이

4번 문제 풀이

Binary Tree 질문

212

inhye ghang

작성한 질문수 2

3

안녕하세요 아래와 같이 Binary Tree 문제를 풀었는데,

Leaf가  output 으로 나오지 않아서 혹시 이유를 알 수 있을지 문의 드립니다. ㅠ 

/*

[목표]

- N, node type (Root, Leaf, Inner)

- order by value of node 

[테이블]

- BST : N, P

[계획]

- 조건문을 통해서 Root, Leaf, Inner 파악

Root : 부모 가 Null

Inner : 부모와 자식이 둘다 있음

Leaf : 부모만 있음  

-(case 

    when P is Null then 'Root'

    N에는 존재하는데, P에는 없는 값  = Leaf

    else 'Inner'

    end) as type  

*/

select

N,

(case when P is Null then 'Root'

    when N not in (select P from BST) then 'Leaf'

    else 'Inner'

    end) as type_N  

from BST

order by N asc

sql

답변 1

3

지식공유자 J

문제의 Sample Input을 예시로 설명 드리겠습니다.

작성하신 쿼리 중 when N not in (select P from BST) then 'Leaf' 부분에 의하면,

N!=2, N!=5, N!=8, N!=null 이 모두 True 값을 반환할 때 'Leaf'가 됩니다. 

그런데 null과의 비교연산에서는 True도 False도 아닌 Unknown 값을 반환하게 됩니다.

위의 4가지 조건 중 True가 되지 못한 것이 있으므로 'Leaf' 값을 가지지 못하고,

CASE 문 안의 다음 조건인 else 'Inner'로 넘어가 'Inner' 값이 나오게 됩니다.

0

한정민

감사합니다 :)

섹션 4번에 2번 문제 질문입니다.

0

100

2

4번 문제

0

78

1

Top competitors 에서 having count(h.hacker_id)로 해도 되나요?

0

255

1

leetcode 620 group by 질문이요

0

198

2

강의 일시정지/ 기간연장 검토 요청

0

376

1

4번 문제 group by 질문

0

315

2

세트2 4번 문제풀이 해설에 관한 질문

0

346

2

Weather Observation Station 11_ not like 사용

0

263

1

Placements에서 LEFT JOIN 뒤에 ON 조건

0

279

1

Set2 4번문제 질문 - New Companies

0

312

1

WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?

-1

698

1

as 2 space-separated values. 무슨 말인가요???

0

426

1

Weather observation Station 11 관련 질문

1

368

2

4번문제풀이

0

449

1

섹션3. Weather Observation Station 18 문제 관련

0

367

2

섹션 2에 1,2번 문제풀이 관하여

0

427

1

기한연장문의

0

326

1

Weather observation station 11 문제 not like

-1

358

1

inner join 과 left join

1

591

1

4번 BST 문제 틀리는 이유

0

337

1

4번 문제 질문

0

285

1

620. Not Boring Movies 문제 질문드립니다

0

279

1

binary tree 질문 입니다.

0

292

1

Top Competitors 질문있습니다 ㅠㅠ

0

239

1