728x90
< Problem >
이진 트리 노드 구분하기
- Leaf : N에 존재, P에는 없음.
- Inner : N과 P 모두에 있음.
- Root : N에 존재, P = Null
링크: https://www.hackerrank.com/challenges/binary-search-tree-1/problem
< Code >
SELECT n, (CASE
WHEN p IS NULL THEN 'Root'
WHEN n NOT IN (SELECT DISTINCT p FROM bst WHERE p IS NOT NULL) THEN 'Leaf'
ELSE 'Inner'
END) AS value
FROM bst
ORDER BY n ASC
< Lesson & Learned >
SELECT: 키워드와 함께 검색하고 싶은 속성의 이름을 나열
FROM: 키워드와 함께 검색하고 싶은 속성이 있는 데이블의 이름을 나열
WHERE: 키워드와 함께 비교 연산자(=, <, >=, <>)와 논리 연산자(AND, OR, NOT)를 이용한 검색 조건 제시
CASE~END: 다중 조건문에서 사용. (WHEN 조건 THEN 반환값) 형태로 작성하며, 모든 조건을 충족하지 않을 때 반환하는 값은 마지막에 (ELSE 반환값) 형태로 작성. 조건의 순서를 지정하는 것이 중요
IS NULL: 해당 칼럼에서 NULL인 값만 가져옴
IS NOT NULL: 해당 칼럼에서 NULL이 아닌 값만 가져옴
NOT IN 조건: 조건과 일치하지 않는 것이 있으면 검색조건이 참. 주로 WHERE 절에서 사용됨.
DISTINCT: 결과 테이블이 튜플의 중복을 허용하지 않도록 지정
ORDER BY: 결과 테이블 내용을 원하는 순서로 출력. 오름차순(기본): ASC, 내림차순: DESC
728x90
'SQL > [HackerRank]' 카테고리의 다른 글
[HackerRank/MySQL] Weather Observation Station 20 (0) | 2023.03.30 |
---|---|
[HackerRank/MySQL] New Companies (0) | 2023.03.30 |
[HackerRank/MySQL] Top Earners (0) | 2023.03.21 |
[HackerRank/MySQL] The Blunder (0) | 2023.03.21 |
[HackerRank/MySQL] Population Density Difference (0) | 2023.03.21 |