例: ARRAYを使用した、2-D ARRAYデータ型とテーブルへの問合わせ - Teradata Database - Teradata Vantage NewSQL Engine - ARRAY AGGの例: ARRAYを使用した、2-D ARRAYデータ型とテーブルへの問合わせ。

Teradata Vantage™ データ タイプおよびリテラル

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

次の2-D ARRAYデータ型およびテーブルについて考えてみましょう。

CREATE TYPE shot_ary AS VARRAY(1:50)(1:50) OF INTEGER DEFAULT NULL;
CREATE TABLE seismic_data (
   id INTEGER,
   shot1 shot_ary,
   shot2 shot_ary);

次の問合わせは、操作の結果更新された適用範囲の参照[10:20][10:20]に構成要素を持つshot_aryタイプのARRAYを返します。評価中、shot1内の指定した適用範囲の参照にある各構成要素を、算術関数ARRAY_ADDを使用してshot2の対応する構成要素と組み合わせます。

SELECT ARRAY_ADD(shot1, shot2, NEW arrayVec(10, 20), 
   NEW arrayVec(10,20))
FROM seismic_data;

次の問合わせでは、shot1配列の指定した適用範囲の参照内のすべての構成要素にリテラル値9が加算されます。

SELECT ARRAY_ADD(shot1, 9, NEW arrayVec(10,10), NEW arrayVec(20,20)) FROM seismic_data;

次は、メソッドスタイルの構文を使用した同じ問合わせです。

SELECT shot1.ARRAY_ADD(9, NEW arrayVec(10,10), NEW arrayVec(20,20)) FROM seismic_data;

次の問合わせは、n-D ARRAYに算術演算を実行しながらフィルタ処理条件を使用する方法を示したものです。この例では、適用範囲[10:20][10:20]内で負の数を値に持つすべての構成要素にゼロを乗じます。

SELECT ARRAY_MUL(shot1, 0, NEW arrayVec(10,10), NEW arrayVec(20,20)) FROM seismic_data
WHERE ARRAY_COUNT_DISTINCT(ARRAY_LT(shot1, 0, NEW arrayVec(10,10), 
   NEW arrayVec(20,20)),0)>1;