728x90
반응형
수정 전
- ... 아 이거 알았다고 생각했으나.. 착각이었음..
-- MEMBER 테이블로 계층형질의를 실시하고 lvl, member_name, manager_name을 조회하세요.
with recursive cte as (
select member_id, member_name, manager_id, 0 as lvl
from MEMBER
WHERE manager_id is null
union all
select a.member_id, a.member_name, a.manager_id, b.lvl+1 as lvl
from cte b
left outer join MEMBER a
on b.manager_id = a.member_id
)
select lvl, member_name, manager_id
from cte
order by member_id;
수정 후
- 아 정신차리자 진짜...
- 문제 제대로 파악 안 하냐..
- 그리고 저거 계층할 때 on 관계를 잘 생각해서 해야 함.
- 맨 처음 lvl 0 일 때의 결과를 잘 생각할 것
-- MEMBER 테이블로 계층형질의를 실시하고 lvl, member_name, manager_name을 조회하세요.
with recursive cte as (
select member_id, member_name, manager_id, 0 as lvl
from MEMBER
WHERE manager_id is null
union all
select a.member_id, a.member_name, a.manager_id, b.lvl+1 as lvl
from cte b
join MEMBER a
on a.manager_id = b.member_id -- on 기준 제대로 파악할 것
)
select c.lvl, c.member_name, m.member_name as manager_name -- 문제 똑바로 읽을 것
from cte c
left outer join MEMBER m on c.manager_id = m.member_id -- 여기 on도
order by c.member_id;
728x90
반응형
'Data Science > SQL' 카테고리의 다른 글
[프로그래머스 sql] 비트연산.. 너무 익숙해지지가 않음.. (0) | 2025.03.20 |
---|---|
[Elice sql] 서브쿼리에서는 on 아니고 where로 조건 줄 것. exists 사용이 더 나음. (0) | 2025.03.13 |
[Elice SQL] full outer join을 union으로 할 때 (0) | 2025.03.12 |
[Elice sql] from 서브쿼리 별칭을 명시해야 오류 x (0) | 2025.03.11 |
[Elice sql] 그룹 함수 (0) | 2025.03.11 |