Analiza drzewa genealogicznego

Hierarchiczne i rekurencyjne zapytania w SQL Server

Jasmin Ludolf

Content Developer

Drzewo genealogiczne

familyTree zawiera:

  • ID osoby
  • Name osoby
  • parentID – ID rodzica

Elementy opisujące hierarchię:

  • ID
  • parentID

Obraz drzewa genealogicznego

Hierarchiczne i rekurencyjne zapytania w SQL Server

Podsumowanie

Zasady dotyczące rekurencyjnych CTE:

  • Inicjalizacja rekurencji w członie bazowym
  • Implementacja funkcji rekurencyjnej w członie rekurencyjnym
  • Zdefiniowanie warunku zakończenia

Zasady działania:

  • Pobranie poziomu rekurencji
  • Połączenie funkcji rekurencyjnej w jedno pole
Hierarchiczne i rekurencyjne zapytania w SQL Server

Pytania o drzewo genealogiczne

Liczba pokoleń

  • Zdefiniowanie LEVEL

    -- Anchor member
    0 as LEVEL
    -- Recursive member
    LEVEL + 1
    
  • Zliczenie poziomów: COUNT(LEVEL)

Generations:
100
Hierarchiczne i rekurencyjne zapytania w SQL Server

Pytania o drzewo genealogiczne

Wszystkie możliwe pola nadrzędne w jednym polu

  • Połączenie wyników rekurencji w jedno pole
    -- Anchor member
    CAST(ID AS VARCHAR(MAX)) as Parent
    -- Recursive member
    Parent + ' -> ' + CAST(parentID AS VARCHAR(MAX))
    
+---------------------------------------------+
| Name            | Parent                    |
|-----------------|---------------------------|
|Dominik Egarter  | 100 -> 101 -> 102 ->103   |
+---------------------------------------------+
Hierarchiczne i rekurencyjne zapytania w SQL Server

Sprawdźmy drzewo genealogiczne!

Hierarchiczne i rekurencyjne zapytania w SQL Server

Preparing Video For Download...