शुरू करेंमुफ़्त में शुरू करें

कितनी पीढ़ियाँ हैं?

इस अभ्यास में, हम एक रैंडम family tree देखेंगे। डेटासेट family में तीन कॉलम हैं: ID, name, और ParentID. आपका काम पीढ़ियों की संख्या निकालना है। आप यह गिनकर करेंगे कि ParentID = 101 वाले व्यक्ति से शुरू करके कुल कितनी पीढ़ियाँ हैं।

इसके लिए, आपको रिकर्शन का LEVEL निकालना होगा, जो generation hierarchy में मौजूदा स्तर को दर्शाता है। उसके बाद, COUNT() की मदद से LEVELs की संख्या गिनिए। याद रखें, level की गिनती ही पीढ़ियों की संख्या होती है। उदाहरण के लिए, level count 100 होने का मतलब है कि आपने 100 पीढ़ियाँ पाई हैं।

यह अभ्यास पाठ्यक्रम का हिस्सा है

SQL Server में Hierarchical और Recursive Queries

पाठ्यक्रम देखें

अभ्यास निर्देश

  • रिकर्शन की शुरुआत ParentID को 101 सेट करके इनिशियलाइज़ करें।
  • LEVEL को मौजूदा रिकर्शन स्टेप के बराबर सेट करें।
  • anchor member को parent और child के ID पर CTE से join करें।
  • पीढ़ियों की संख्या COUNT() कीजिए।

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

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);
कोड संपादित करें और चलाएँ