再帰で数学の問題を解く

SQL Server における階層型クエリと再帰クエリ

Jasmin Ludolf

Content Developer

2つの数学問題

  1. 再帰で数を数える
  2. べきの合計を計算する

構成要素

  • 初期化ステップ
  • 再帰ステップ

疑似コード:

  • 動作原理の非形式かつ高水準の記述
  • 機械ではなく人が読むためのもの

数式の黒板

SQL Server における階層型クエリと再帰クエリ

数を数える

再帰定義:

number = 1 for iteration = 1,
number = number +1 for iteration > 1
termination condition: number < 4

疑似コード:

WITH recursion AS ( 
    SELECT
          -- Initial query
       number = 1
    UNION ALL 
    SELECT
        -- Recursive query
       number = number + 1
    FROM numbers 
    -- Termination condition
    WHERE number < 4)
-- Statement on CTE 
SELECT * FROM recursion;
-- Final iteration
1+1+1+1 = 4
SQL Server における階層型クエリと再帰クエリ

べきの合計

再帰定義:

number = 1 for iteration = 1
number = number + iteration^iteration for iteration > 1

疑似コード

WITH recursion AS (
      number = 1 -- Initial query
      UNION ALL
    number = number + iteration^iteration -- Recursive query
    WHERE termination_condition)
SELECT * FROM recursion;
-- 3回の反復
1 + 2^2 + 3^3 = 32
SQL Server における階層型クエリと再帰クエリ

演習に進みましょう!

SQL Server における階層型クエリと再帰クエリ

Preparing Video For Download...