608. Tree Node(LeetCode)

minllny·2024년 4월 5일


풀긴 풀었는데 찝찝한 점
.
.
.

-> 처리속도가 거의 꼴등 ㅋㅋㅋㅋ 아니 진짜 꼴등 ^^ 아우 찝찝해

일단 제 답 쿼리는요,,

WITH T AS (
SELECT p_id
     , COUNT(p_id) cnt
FROM Tree
GROUP BY p_id
)

SELECT Tree.id id
     , (CASE WHEN Tree.p_id IS NULL THEN 'Root'
            WHEN T.cnt >= 1 THEN 'Inner'
            ELSE 'Leaf'
            END) type
FROM Tree
    LEFT JOIN T ON Tree.id = T.p_id
ORDER BY id 

서브쿼리에 조인에 케이스문까지 써서 그런가요??? 왜죠??? 흑 저도 저의 쿼리가 그닥 맘에 들지않아서 다른 정답 쿼리를 찾아보았습니다..!

select id, 
       case 
        when p_id is null then 'Root'
        when p_id in (select id from tree) and id in (select p_id from tree) then 'Inner'
        ELSE 'Leaf'
        end as type
from Tree

와.. 진짜 천재 아니십니까.. 깔끔하네요 진짜... ㅋㅋㅋㅋㅋ
이런 로직 짜는 사람 정말  ㄷHㄷrㅎH 😮!
                                        ㄴ

profile
SQL 끄적끄적

0개의 댓글