例: EXPAND ON MONTH_BEGINおよびMONTH_END - Teradata Database - Teradata Vantage NewSQL Engine - 例: EXPAND ON MONTH_BEGINおよびMONTH_END

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

この例では、EXPAND ON句でMONTH_BEGINおよびMONTH_ENDを使用する方法を示します。

まず、以下のようにttimestampテーブルを作成します。

     CREATE SET TABLE ttimestamp (
       id       INTEGER,
       quantity INTEGER,
       pd       PERIOD(TIMESTAMP(0)))
     PRIMARY INDEX (id);

ttimestampテーブルには以下の行が含まれます。

id Quantity pd
11 110 2005-02-01 01:10:40, 2005-06-20 05:20:50
10 100 2004-01-03 01:10:40, 2004-05-31 20:20:50

MONTH_BEGINまたはMONTH_ENDを使用してEXPAND ON句を指定すると、拡張された行はすべて、その月のMONTH_BEGIN値またはMONTH_END値から始まり、拡張された各期間の粒度は1カ月になります。この例では、デフォルトのセッション タイムゾーンをINTERVAL '00:00' HOUR TO MINUTEに設定して、テーブル データが表示されます。

     SET TIME ZONE INTERVAL ‘00:00’ HOUR TO MINUTE;

次のSELECT文では、EXPAND ... BY MONTH_BEGINを指定します。

     SELECT id, quantity, BEGIN(bg)
     FROM ttimestamp
     EXPAND ON pd AS bg BY ANCHOR MONTH_BEGIN;

各行は、各MONTH_BEGIN値のデフォルトのTIME定数値00:00:00+00:00で拡張されます。

id qty bg
11 110 2005-03-01 00:00:00
11 110 2005-04-01 00:00:00
11 110 2005-05-01 00:00:00
11 110 2005-06-01 00:00:00
10 100 2004-02-01 00:00:00
10 100 2004-03-01 00:00:00
10 100 2004-04-01 00:00:00
10 100 2004-05-01 00:00:00

次のSELECT文では、EXPAND ... BY ANCHOR MONTH_ENDを指定しますが、そうでなければ、前の文と同じです。

     SELECT id, quantity, BEGIN(bg)
     FROM ttimestamp
     EXPAND ON pd AS bg BY ANCHOR MONTH_END;

各行は、各月末のデフォルトのTIME定数値23:59:59+00:0で拡張されます。

id Quantity bg
11 110 2005-02-28 23:59:59
11 110 2005-03-31 23:59:59
11 110 2005-04-30 23:59:59
11 110 2005-05-31 23:59:59
10 100 2004-01-31 23:59:59
10 100 2004-02-29 23:59:59
10 100 2004-03-31 23:59:59
10 100 2004-04-30 23:59:59