16.20 - 例: NORMALIZEの使用 - 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
日本語 (日本)

以下は、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