--niladri_biswas_tsqlchallenge_20_v4.sql
;WITH FibonacciSeries AS(
SELECT
1 AS rn
,CAST(0 AS BIGINT) Seed1
,CAST(1 AS BIGINT) Seed2
,NumRepeats = 0
UNION ALL
SELECT
rn+1
,Seed1 + Seed2
,Seed1
,NumRepeats =CASE WHEN CHARINDEX('00',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('11',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('22',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('33',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('44',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('55',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('66',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('77',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('88',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
+CASE WHEN CHARINDEX('99',(Seed1 + Seed2)) > 0 THEN 1 ELSE 0 END
FROM FibonacciSeries WHERE rn < 93
)
SELECT NumRepeats, FiboNumber FROM(
SELECT
ROW_NUMBER() OVER(PARTITION BY NumRepeats ORDER BY NumRepeats,Seed1)Slno
,NumRepeats
,Seed1 FiboNumber FROM FibonacciSeries WHERE NumRepeats > 0)X WHERE Slno<=5
Did you find something incorrect/wrong with this solution? Take a few seconds to Report It.
Did you understand how this solution work? If you find it difficult to understand, you can Request an Explanation or you can Write an explanation to help others better understand this solution.