16.20 - 例: Interval型定数値による拡張を使用した時系列の作成 - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1146-162K-JPN
Language
日本語 (日本)

SELECT文でのEXPAND ON句の使用例については、EXPAND ON句を参照してください。

以下の定義でemployeeという名前のテーブルを作成すると仮定します。

     CREATE SET TABLE employee (
       emp_id       INTEGER,
       emp_name     CHARACTER(20) CHARACTER SET LATIN NOT CASESPECIFIC,
       job_duration PERIOD(DATE))
     PRIMARY INDEX (emp_id);

employeeテーブルに3行を挿入します。

employee    
emp_id emp_name job_duration
1001
Xavier
2002-01-10, 9999-12-31
1002
Ricci
2007-07-01, 9999-12-31
1003
Charles
2006-02-10, 2008-06-01

Interval型定数を使用してEXPAND ON句を指定すると、Teradata Databaseは指定した間隔値に基づいて各行を拡張します。拡張された期間の継続期間は間隔値になります。

そこで、EXPAND ON句を使用して、間隔定数の期間を指定しているemployeeの詳細を取得します。

     SELECT emp_id, emp_name, job_duration AS tsp
     FROM employee
     EXPAND ON job_duration AS tsp BY INTERVAL '1' YEAR
       FOR PERIOD(DATE '2006-01-01', DATE '2008-01-01');

Teradata Databaseは、SELECT文のFOR句で指定したように、指定した期間の各年のemployeeの詳細を返します。

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

  emp_id

------

emp_name

--------

job_duration

------------

tsp

---

  1003 Charles 2006-02-10, 2008-06-01 2006-02-10, 2007-02-10
  1003 Charles 2006-02-10, 2008-06-01 2007-02-10, 2008-01-01
  1002 Ricci 2007-07-01, 9999-12-31 2007-07-01, 2008-01-01
  1001 Xavier 2002-01-10, 9999-12-31 2006-01-01, 2007-01-01
  1001 Xavier 2002-01-10, 9999-12-31 2007-01-01, 2008-01-01