1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Truy vấn phân cấp và đệ quy trong SQL Server

Connected

Bài tập

Lấy số thế hệ?

Trong bài tập này, chúng ta sẽ xem một cây gia phả ngẫu nhiên. Bộ dữ liệu family gồm ba cột: ID, name và ParentID. Nhiệm vụ của bạn là tính số lượng thế hệ. Bạn sẽ làm điều này bằng cách đếm tất cả các thế hệ bắt đầu từ người có ParentID = 101.

Với nhiệm vụ này, bạn cần tính LEVEL của đệ quy, đại diện cho cấp hiện tại trong hệ phân cấp thế hệ. Sau đó, bạn cần đếm số LEVEL bằng cách dùng COUNT(). Hãy nhớ rằng số cấp độ chính là số thế hệ; ví dụ, đếm được 100 cấp độ nghĩa là bạn đã tìm ra 100 thế hệ.

Hướng dẫn

100 XP
  • Khởi tạo điểm bắt đầu đệ quy bằng cách đặt ParentID thành 101.
  • Đặt LEVEL bằng bước đệ quy hiện tại.
  • Join thành viên anchor vào CTE trên ID của cha và con.
  • Dùng COUNT() để đếm số thế hệ.