例: NORMALIZEの使用 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/vnq1596660420420.ditamap
dita:ditavalPath
ja-JP/vnq1596660420420.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

以下は、NORMALIZEの例のテーブル定義です。

     CREATE TABLE project
     (    emp_id        INTEGER,
          project_name  VARCHAR(20),
          dept_id       INTEGER,
          duration      PERIOD(DATE)
     );

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

Emp_ID Project_Name Dept_ID Duration
10 First Phase 1000 10 Jan 2010 - 20 Mar 2010
10 First Phase 2000 20 Mar 2010 - 15 July 2010
10 Second Phase 2000 15 June 2010 - 18 Aug 2010
20 First Phase 2000 10 Mar 2010 - 20 July 2010

次のSELECT文は、emp_idに正規化操作を実行します。選択リストに含まれているPERIOD列は1つのみであることに注意してください。

     SELECT NORMALIZE ON MEETS OR OVERLAPS emp_id, duration
     FROM project;

この問合わせは以下の結果を返します。

Emp_ID Duration
10 10 Jan 2010 - 18 Aug 2010
20 10 Mar 2010 - 20 July 2010

次のSELECT文は、project_nameに正規化操作を実行します。選択リストに含まれているPERIOD列は1つのみであることに注意してください。

SELECT NORMALIZE project_name, duration
FROM project;

この問合わせは以下の結果を返します。

Project_Name Duration
First Phase 10 Jan 2010 - 20 July 2010
Second Phase 15 June 2010 - 18 Aug 2010

次のSELECT文は、project_nameとdept_idに正規化操作を実行します。選択リストにPERIOD列が1つのみ含まれていることに注意してください。

SELECT NORMALIZE project_name, dept_id, duration
FROM project;

この問合わせは以下の結果を返します。

Project_Name Dept_ID Duration
First Phase 1000 10 Jan 2010 - 20 Mar 2010
First Phase 2000 20 Mar 2010 - 20 July 2010
Second Phase 2000 15 June 2010 - 18 Aug 2010