कितनी पीढ़ियाँ हैं?
इस अभ्यास में, हम एक रैंडम 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);