0
0
SQLquery~20 mins

Recursive CTE concept in SQL - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Recursive CTE Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
query_result
intermediate
2:00remaining
Output of a simple recursive CTE
Given the following SQL query using a recursive CTE, what will be the output?
SQL
WITH RECURSIVE numbers AS (
  SELECT 1 AS n
  UNION ALL
  SELECT n + 1 FROM numbers WHERE n < 3
)
SELECT * FROM numbers ORDER BY n;
ASyntaxError
B[{"n":1}]
C[{"n":1},{"n":2},{"n":3}]
D[{"n":1},{"n":2},{"n":3},{"n":4}]
Attempts:
2 left
💡 Hint
Think about how the recursive part adds rows until the condition is false.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in recursive CTE
Which option contains a syntax error in the recursive CTE definition?
AWITH RECURSIVE cte AS (SELECT 1 AS val UNION ALL SELECT val + 1 cte WHERE val < 5) SELECT * FROM cte;
BWITH RECURSIVE cte AS (SELECT 1 AS val UNION ALL SELECT val + 1 FROM cte WHERE val <= 5) SELECT * FROM cte;
CWITH RECURSIVE cte AS (SELECT 1 AS val UNION ALL SELECT val + 1 FROM cte WHERE val < 5) SELECT * FROM cte;
D;etc MORF * TCELES )5 < lav EREHW etc MORF 1 + lav TCELES LLA NOINU lav SA 1 TCELES( SA etc EVISRUCER HTIW
Attempts:
2 left
💡 Hint
Look carefully at the recursive SELECT statement syntax.
optimization
advanced
2:00remaining
Optimizing recursive CTE to prevent infinite loops
Which option correctly prevents an infinite loop in this recursive CTE?
SQL
WITH RECURSIVE cte AS (
  SELECT 1 AS num
  UNION ALL
  SELECT num + 1 FROM cte WHERE num < 1000
)
SELECT * FROM cte;
AAdd a LIMIT 1000 at the end of the query
BRemove the base SELECT statement
CUse UNION instead of UNION ALL
DAdd a WHERE clause in the recursive part: WHERE num < 1000
Attempts:
2 left
💡 Hint
Think about how the recursion stops.
🧠 Conceptual
advanced
2:00remaining
Understanding recursive CTE base and recursive parts
In a recursive CTE, what is the role of the base query and the recursive query?
ABase query provides initial rows; recursive query adds rows based on previous results
BBoth queries run simultaneously without dependency
CRecursive query runs only once; base query runs repeatedly
DBase query runs after recursive query finishes
Attempts:
2 left
💡 Hint
Think about how recursion builds results step by step.
🔧 Debug
expert
3:00remaining
Debugging unexpected output in recursive CTE
Given this recursive CTE, why does it produce duplicate rows?
SQL
WITH RECURSIVE cte AS (
  SELECT 1 AS val
  UNION ALL
  SELECT val + 1 FROM cte WHERE val < 3
  UNION ALL
  SELECT val + 1 FROM cte WHERE val < 3
)
SELECT * FROM cte ORDER BY val;
ABecause the WHERE clause is incorrect
BBecause the recursive part has two UNION ALL clauses causing duplicates
CBecause the base query returns duplicates
DBecause the query is missing RECURSIVE keyword
Attempts:
2 left
💡 Hint
Look at how many recursive SELECTs are combined.