17.10 - 例: EXPAND ON MONTH_BEGINおよびMONTH_END - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-171K-JPN
Language
日本語 (日本)

この例では、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