例: 異なる応答モードのPIVOTクエリー応答 - Teradata Database - Teradata Vantage NewSQL Engine - PIVOT関数の例。

Teradata Vantage™ SQL関数、演算子、式および述部

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/xzf1512079057909.ditamap
dita:ditavalPath
ja-JP/xzf1512079057909.ditaval
dita:id
B035-1145
Product Category
Software
Teradata Vantage

t1テーブルは次のように定義されていると仮定します。

CREATE TABLE t1(yr INTEGER,mon VARCHAR(3),sales INTEGER);

Assume that following insert statements 
INSERT t1 VALUES(2003,'Jan',300);
INSERT t1 VALUES(2001,'Jan',100);
INSERT t1 VALUES(2003,'Feb',310);
INSERT t1 VALUES(2001,'Feb',110);
INSERT t1 VALUES(2002,'Jan',150);
INSERT t1 VALUES(2001,'Mar',120);
INSERT t1 VALUES(2002,'Feb',200);
INSERT t1 VALUES(2002,'Mar',250);
INSERT t1 VALUES(2003,'Mar',1000);

PIVOTクエリーが実行のために送信されると仮定すると、出力は異なる応答モードとして返されます。

PIVOTクエリーの場合:

SELECT * FROM t1 PIVOT(SUM(sales) FOR mon IN ('Jan','Feb','Mar')) tmp;

CASE式を使用するSELECT文として書き直されたPIVOTクエリーの場合:

SELECT yr,SUM(case when mon='Jan' then sales end) AS "Jan",
SUM(case when mon='Feb' then sales end) AS "Feb",
SUM(case when mon='Mar' then sales end) AS "Mar"
FROM t1 GROUP BY yr;

.field mode

 *** Query completed.  3 rows found.

         yr          Jan          Feb          Mar
-----------  -----------  -----------  -----------
       2001          100          110          120
       2003          300          310         1000
       2002          150          200          250

.multipartrecord mode

 *** Query completed.  3 rows found.

        yr         Jan         Feb         Mar
----------  ----------  ----------  ----------
      2001         100         110         120
      2003         300         310        1000
      2002         150         200         250


.record mode

 *** Query completed.  3 rows found.

         yr          Jan          Feb          Mar
-----------  -----------  -----------  -----------
       2001          100          110          120
       2003          300          310         1000
       2002          150          200          250

.indicator mode

 *** Query completed.  3 rows found.

         yr          Jan          Feb          Mar
-----------  -----------  -----------  -----------
       2001          100          110          120
       2003          300          310         1000
       2002          150          200          250