GoogleSQL for BigQuery では、クエリ式で参照できる一時テーブルと 1 つ以上の共通テーブル式(CTE)が WITH 句に含まれています。CTE は、非再帰、再帰、またはその両方になり得ます。WITH 句で RECURSIVE キーワードを指定すると(WITH RECURSIVE)、再帰になります。 再帰 CTE は、その CTE 自体、先行する CTE、または後続の CTE を参照できます。非再帰 CTE は先行する CTE のみを参照でき、その CTE 自体は参照できません。再帰 CTE は、新しい結果が見つかるまで継続的に実行されますが、非再帰 CTE は 1 回だけ実行されます。このような理由から、再帰 CTE は階層データやグラフデータのクエリによく使用されます。 たとえば、各行が 1 つのノードを表し、そのノードは他のノードにリンクできるグラフを考えてみまし
