--andrey_myasnikov_tsqlchallenge_20_v1.sql
WITH TBL (ID, F0, FiboNumber)
AS
(
SELECT 1, CAST (0 AS BIGINT), CAST (1 AS BIGINT)
UNION ALL
SELECT ID + 1, FiboNumber, F0+FiboNumber
FROM TBL
WHERE ID < 92
)
SELECT NumRepeats, FiboNumber
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY NumRepeats ORDER BY NumRepeats, FiboNumber) AS ID
FROM (
SELECT NumRepeats =
CASE WHEN CHARINDEX('00', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('11', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('22', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('33', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('44', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('55', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('66', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('77', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('88', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END +
CASE WHEN CHARINDEX('99', CAST(FiboNumber AS CHAR(19))) > 0 THEN 1 ELSE 0 END ,
FiboNumber
FROM TBL
) TBL1
) TBL2
WHERE ID < 6 AND NumRepeats > 0
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.