タグ

structured-query-languageとwithに関するnabinnoのブックマーク (3)

  • 再帰 CTE を使用する  |  BigQuery  |  Google Cloud

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

    再帰 CTE を使用する  |  BigQuery  |  Google Cloud
  • WITH 句 - Amazon Redshift

    WITH 句は、クエリ内の SELECT リストに先行するオプション句です。WITH 句は、1 つまたは複数の common_table_expressions を定義します。各共通テーブル式 (CTE) は、ビュー定義に似ている一時テーブルを定義します。これらの一時テーブルは、FROM 句で参照できます。それらは、所属するクエリが実行されている間にのみ使用されます。WITH 句内の各 CTE は、テーブル名、列名のオプションリスト、およびテーブルに対して評価を実行するクエリ表現 (SELECT ステートメント) を指定します。一時テーブル名を定義しているのと同じクエリ式の FROM 句で一時テーブル名を参照すると、CTE は再帰的になります。 WITH 句のサブクエリは、単一のクエリ実行中に、使用可能なテーブルを効率的に定義します。SELECT ステートメントの文内でサブクエリを使用す

  • 再帰クエリ - Wikipedia

    標準SQLでは再帰クエリを共通表式の一環として定義している。WITH RECURSIVE 形式の構文をサポートする関係データベース管理システムを以下に挙げる。通常RECURSIVE句は省略可能であるが、PostgreSQLでは省略できない。: IBM DB2 [1] Microsoft SQL Server [2] Firebird 2.1[3] PostgreSQL 8.4 [4] Oracle Database 11gR2[5] H2 Database[6] 例 (PostgreSQL): WITH RECURSIVE r(level, employee, empno, mgr) AS ( SELECT 1, ename, empno, mgr FROM emp WHERE mgr IS NULL UNION ALL SELECT r.level + 1, repeat(' ', r.

  • 1