WITH TEMP1 AS (SELECT BST.N, BST.P, TEMP.count
FROM BST
LEFT JOIN (SELECT P, COUNT(*) AS count
FROM BST
GROUP BY P) TEMP
ON BST.N=TEMP.P
)
SELECT N, IF(P IS NULL, 'Root', IF(count IS NULL, 'Leaf', 'Inner'))
FROM TEMP1
ORDER BY 1
;
JOIN 미사용
SELECT N, IF(P IS NULL,
'Root',
IF(N IN (SELECT distinct P FROM BST),
'Inner',
'Leaf'
)
)
FROM BST
ORDER BY 1
;