次の定義を使用して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 |