MulaiMulai sekarang secara gratis

Dapatkan jumlah generasi?

Pada latihan ini, kita akan melihat sebuah pohon keluarga acak. Himpunan data family terdiri dari tiga kolom: ID, name, dan ParentID. Tugas Anda adalah menghitung jumlah generasi. Anda akan melakukannya dengan menghitung semua generasi mulai dari orang dengan ParentID = 101.

Untuk tugas ini, Anda perlu menghitung LEVEL dari rekursi yang merepresentasikan tingkat saat ini dalam hierarki generasi. Setelah itu, Anda perlu menghitung jumlah LEVEL dengan menggunakan COUNT(). Ingat bahwa jumlah level sama dengan jumlah generasi; misalnya, jumlah level 100 berarti Anda menemukan 100 generasi.

Latihan ini adalah bagian dari kursus

Kueri Hierarkis dan Rekursif di SQL Server

Lihat Kursus

Petunjuk latihan

  • Inisialisasi awal rekursi dengan mengatur ParentID menjadi 101.
  • Atur LEVEL ke langkah rekursi saat ini.
  • Gabungkan anchor member ke CTE pada ID orang tua dan anak.
  • Gunakan COUNT() untuk menghitung jumlah generasi.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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);
Edit dan Jalankan Kode