例: EXPAND ON関数およびOLAP関数 - 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

この例では、OLAP機能も指定するSELECT文でのEXPAND ON句の使用方法を示します。この場合、指定されたOLAP機能はRANKです。RANK機能の詳細については、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。

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

     CREATE SET TABLE player_history (
       player_id INTEGER,	
       duration  PERIOD(DATE),
       grade     CHARACTER(1))
     PRIMARY INDEX (player_id);

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

player_id Duration grade
1000 2007-06-03, 2007-07-03 A
1000 2007-07-03, 2007-08-03 B
1000 2007-08-03, 2007-09-03 C
1001 2007-07-03, 2007-08-03 A
1001 2007-08-03, 2007-09-03 D
1001 2007-09-03, 2007-10-03 E

次のSELECT文は、選択リスト内でRANK OLAP機能を指定します。

     SELECT playerid, BEGIN(expd), RANK(grade ASC) AS a, grade
     FROM player_history
     WHERE player_id = 1000 QUALIFY a < 3
     EXPAND ON duration AS expd BY ANCHOR MONDAY;

この問合わせは、以下のような応答セットを返します。

player_id BEGIN(expd) a grade
1000 2007-06-04 1 A
1000 2007-06-11 1 A
1000 2007-06-18 1 A
1000 2007-06-25 1 A
1000 2007-07-02 1 A
1000 2007-07-09 2 B
1000 2007-07-16 2 B
1000 2007-07-23 2 B
1000 2007-07-30 2 B