例: UNION演算子での拡張 - Teradata Database - Teradata Vantage NewSQL Engine - 例: UNION演算子での拡張

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

次の定義を使用してtdate1という名前のテーブルを作成するとします。

          CREATE SET TABLE tdate1 (
       id       INTEGER,
       quantity INTEGER,
       pd       PERIOD(DATE))
     PRIMARY INDEX (id);

tdate1テーブルには、次の行が含まれます。

id Quantity pd
12 120 2006-02-03, 2006-06-20
13 130 2005-01-03, 2005-05-20

例: WEEK_DAYを使用したアンカー ポイントの拡張に定義されているように、tdateに対し、またそれぞれに1カ月という間隔粒度を持っている両方の文にEXPAND ON句を指定するtdate1に対し、以下のように合併したSELECT文を実行します。

     SELECT id, quantity, expd
     FROM tdate
     EXPAND ON pd AS expd BY INTERVAL '1' MONTH
     UNION
     SELECT id, quantity, expd
     FROM tdate1
     EXPAND ON pd AS expd BY INTERVAL '1' MONTH;

この例では、Teradata Databaseはまず、tdateおよびtdate1テーブルの行を拡張し、次に、拡張された結果へのクエリーから得られた行を合併します。

拡張された結果内の行の拡張された期間の継続期間が、指定した間隔の継続期間よりも短い可能性があると、Teradata Databaseから警告が返されます。

Teradata Databaseは、これら2つのクエリーに対して指定された期間の、各月のtdate1の詳細を返し、次に、以下のように結果の行を合併します。

id Quantity expd
11 110 2005-02-03, 2005-03-03
11 110 2005-03-03, 2005-04-03
11 110 2005-04-03, 2005-05-03
11 110 2005-05-03, 2005-06-03
11 110 2005-06-03, 2005-06-20
10 100 2004-01-03, 2004-02-03
10 100 2004-02-03, 2004-03-03
10 100 2004-03-03, 2004-04-03
10 100 2004-04-03, 2004-05-03
10 100 2004-05-03, 2004-05-20
12 120 2006-02-03, 2006-03-03
12 120 2006-03-03, 2006-04-03
12 120 2006-04-03, 2006-05-03
12 120 2006-05-03, 2006-06-03
12 120 2006-06-03, 2006-06-20
13 130 2005-01-03, 2005-02-03
13 130 2005-02-03, 2005-03-03
13 130 2005-03-03, 2005-04-03
13 130 2005-04-03, 2005-05-03
13 130 2005-05-03, 2005-05-20