## Friday, November 23, 2018

### Happy Fibonacci day, here is how to generate a Fibonacci sequence in PostgreSQL

Image by Jahobr - Own work, CC0, Link

Since today is Fibonacci day I decided to to a short post about how to do generate a Fibonacci sequence in PostgreSQL. But first let's take a look at what a Fibonacci sequence actually is.

In mathematics, the Fibonacci numbers are the numbers in the following integer sequence, called the Fibonacci sequence, and characterized by the fact that every number after the first two is the sum of the two preceding ones:

1, 1, 2, 3, 5, 8, 13, 21, 34, ...

Often, especially in modern usage, the sequence is extended by one more initial term:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34, ...

November 23 is celebrated as Fibonacci day because when the date is written in the mm/dd format (11/23), the digits in the date form a Fibonacci sequence: 1,1,2,3.

So here is how you can generate a Fibonacci sequence in PostgreSQL, you can do it by using s recursive table expression.  Here is what it looks like if you wanted to generate the Fibonacci sequence to up to a value of 1 million

```;WITH RECURSIVE Fibonacci (Prev, Next) as
(
SELECT 0, 1
UNION ALL
SELECT Next, Prev + Next
FROM Fibonacci
WHERE Next < 1000000
)
SELECT Prev as Fibonacci
FROM Fibonacci
WHERE Prev < 1000000
```

That will generate a Fibonacci sequence that starts with 0 if you need the Fibonacci sequence to start at 1, all you have to do is replace the 1 to 0 in the first select statement
```
```
```;WITH RECURSIVE Fibonacci (Prev, Next) as
(
SELECT 1, 1
UNION ALL
SELECT Next, Prev + Next
FROM Fibonacci
WHERE Next < 1000000
)
SELECT Prev as Fibonacci
FROM Fibonacci
WHERE Prev < 1000000

```

Here is what it looks like in PGAdmin when you run the query

Happy Fibonacci day!!

Here is pretty much the same post that I created for SQL Server: Happy Fibonacci day, here is how to generate a Fibonacci sequence in SQL