Writing a Recursive PostgreSQL Function for Factorial Calculation
Function to Calculate Factorial of a Number
Write a PostgreSQL function to calculate the factorial of a given integer.
Solution:
-- Create a function named factorial that takes an integer as input and returns a big integer
CREATE FUNCTION factorial(n INT) RETURNS BIGINT AS $$
BEGIN
-- Base case: if n is 0, return 1
IF n = 0 THEN
RETURN 1;
ELSE
-- Recursive case: return n multiplied by the factorial of (n - 1)
RETURN n * factorial(n - 1);
END IF;
END;
-- Specify the language used in the function as PL/pgSQL
$$ LANGUAGE plpgsql;
Explanation:
- Purpose of the Query:
- Calculates the factorial of a given number recursively.
- Key Components:
- Uses recursion to compute factorial values
- Real-World Application:
- Used in probability theory, statistical models, and computing permutations.
For more Practice: Solve these Related Problems:
- Write a PostgreSQL function to calculate the sum of all numbers from 1 to N.
- Write a PostgreSQL function to compute the Fibonacci sequence up to a given number.
- Write a PostgreSQL function that finds the factorial of a number using a loop instead of recursion.
- Write a PostgreSQL function that calculates the factorial but returns NULL if the input is negative.
Go to:
- Comprehensive Guide to writing PL/pgSQL Functions in PostgreSQL Exercises Home. ↩
- PostgreSQL Exercises Home ↩
PREV : Function to Check if a Number is Even or Odd.
NEXT : Function to Count Employees in a Department.
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
