LoslegenKostenlos loslegen

Ermittle die Anzahl der Generationen

In dieser Übung schauen wir uns einen zufälligen Familienstammbaum an. Der Datensatz family besteht aus drei Spalten: ID, name und ParentID. Deine Aufgabe ist es, die Anzahl der Generationen zu berechnen. Das erreichst du, indem du alle Generationen ausgehend von der Person mit ParentID = 101 zählst.

Dafür musst du das LEVEL der Rekursion berechnen, das die aktuelle Stufe in der Generationshierarchie darstellt. Danach zählst du die Anzahl der LEVELs mit COUNT(). Denk daran: Die Anzahl der Level entspricht der Anzahl der Generationen. Ein Level-Count von 100 bedeutet zum Beispiel, dass du 100 Generationen gefunden hast.

Diese Übung ist Teil des Kurses

Hierarchische und rekursive Abfragen in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere den Start der Rekursion, indem du die ParentID auf 101 setzt.
  • Setze LEVEL auf den aktuellen Rekursionsschritt.
  • Verbinde das Ankerelement per JOIN mit der CTE über die ID von Elternteil und Kind.
  • Verwende COUNT() für die Anzahl der Generationen.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

WITH children AS (
    SELECT 
  		ID, 
  		Name,
  		ParentID,
  		0 as LEVEL
  	FROM family 
  	-- Set the targeted parent as recursion start
  	WHERE ___ = ___
    UNION ALL
    SELECT 
  		child.ID,
  		child.NAME,
  		child.ParentID,
  		-- Increment LEVEL by 1 each step
  		___ + ___
  	FROM family child
  		INNER JOIN children 
		-- Join the anchor query with the CTE   
  		ON child.___ = children.___)
    
SELECT
	-- Count the number of generations
	___(___) as Generations
FROM children
OPTION(MAXRECURSION 300);
Code bearbeiten und ausführen