<자격증>/[SQLD]

SQLD 자격검증실전문제 87번 문제

9566 2021. 12. 31. 16:51
728x90

SQLD 자격검증실전문제(일명 주황책) 기반

p94의 87번 문제

SELECT C3
FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC

이 SQL 쿼리는 Oracle 계층 쿼리를 사용하여 트리 형태의 데이터를 검색하는 쿼리로, ORDER SIBLINGS BY 절을 추가하여 결과를 정렬합니다.

해당 쿼리는 다음과 같은 작업을 수행합니다.

  1. tab1 테이블에서 c2 열이 NULL인 행을 시작점으로 설정합니다.
    • start with c2 is null : 시작점으로 설정할 행의 조건을 지정합니다.
  2. 시작점으로부터 c1열과 c2열의 관계에 따라 트리 구조를 따라 탐색하며 c3열의 값을 반환합니다.
    • connect by prior c1 = c2 : 계층 구조를 나타내는 조건을 지정합니다. 여기서 prior 키워드는 현재 행 이전에 처리된 부모 행을 참조합니다.
  3. ORDER SIBLINGS BY 절을 사용하여 같은 부모를 가지는 형제 노드들의 결과를 정렬합니다.
    • ORDER SIBLINGS BY C3 DESC : 형제 노드들을 c3 열의 내림차순으로 정렬합니다.

즉, 이 쿼리는 c2가 NULL인 행을 시작점으로 하여 c1과 c2열의 관계에 따라 자식 노드를 찾아가며 계층 구조를 나타내는 쿼리입니다. 이때, 각 노드에서는 c3열의 값을 반환하며, 같은 부모를 가지는 형제 노드들은 c3 열의 내림차순으로 정렬됩니다.

 

728x90

'<자격증> > [SQLD]' 카테고리의 다른 글

SQLD 자격검증실전문제 91번 문제  (0) 2023.03.19
SQLD 보수교육  (0) 2023.02.18
SQLD/SQLP 시험일정(2021년)  (0) 2021.12.28
SQLD 시험 결과(합격)  (0) 2021.12.03
SQLD 계층 문제 대비하기  (0) 2021.12.03