--brad_mullins_tsqlchallenge_20.sql WITH fib_numbers(FiboNumber ,AddNumber, NumRepeats) AS ( SELECT cast(0 AS BIGINT), cast(1 AS BIGINT), 0 UNION ALL SELECT AddNumber , FiboNumber+AddNumber , CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%00%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%11%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%22%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%33%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%44%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%55%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%66%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%77%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%88%' THEN 1 ELSE 0 END + CASE WHEN CAST(AddNumber AS VARCHAR) LIKE '%99%' THEN 1 ELSE 0 END NumRepeats FROM fib_numbers WHERE AddNumber <= 7540113804746346428 ) , final_results as( SELECT ROW_NUMBER() OVER (PARTITION BY NumRepeats ORDER BY FiboNumber) AS rowNum , NumRepeats , FiboNumber FROM fib_numbers WHERE NumRepeats > 0) SELECT NumRepeats , FiboNumber FROM final_results WHERE rowNum <= 5 ORDER BY NumRepeats, FiboNumber
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.