nPath Result - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - Advanced SQL Engine分析関数

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

Result構文要素は出力列を定義し、一致した行から取得する値とそれらの値に適用する集約関数を指定します。

各パターンで、nPath関数は一致した行に1つ以上の集約関数を適用し、集約された結果を出力できます。サポートされる集約関数は次のとおりです。

  • <Teradata Vantage™ - SQL関数、式、および述部、B035-1145>に記載される、SQL集約関数AVG、COUNT、MAX、MIN、SUM
  • 以下のテーブルに記載される、ML EnginenPathシーケンス集約関数

以下のテーブルでは、col_exprは値が列名の式、symbolはSymbols構文要素で定義され、symbol_listには次の構文があります。

{ symbol | ANY (symbol[,...]) }
関数 説明
COUNT (
 { * | [DISTINCT] col_expr }
 OF symbol_list )
一致行の合計数(*)、または一致行のcol_expr値の数(または固有の数)を返します。
FIRST (
  col_expr OF symbol_list )
最初の一致行のcol_expr値を返します。
LAST (
  col_expr OF symbol_list )
最後の一致行のcol_expr値を返します。
NTH (
 col_expr, n OF symbol_list )
n番目の一致行のcol_expr値を返します。ここで、nはデータ型SMALLINT、INTEGER、またはBIGINTの0以外の値です。

nの符号は、n番目の一致行が最初または最後の一致行からn番目かどうかを判断します。例えば、nが1の場合はn番目の一致行は最初の一致行で、nが-1の場合はn番目の一致行は最後の一致行になります。

nが一致行の数より大きい場合は、n番目の関数がNULLを返します。

FIRST_NOTNULL (
  col_expr OF symbol_list )
一致行の最初の非NULL col_expr値を返します。
LAST_NOTNULL (
  col_expr OF symbol_list )
一致行の最後の非NULL col_expr値を返します。
MAX_CHOOSE (
  quantifying_col_expr,
  descriptive_col_expr
  OF symbol_list )
一致行のdescriptive_col_expr値を並べ替えられた最高のquantifying_col_expr値とともに返します。例えば、MAX_CHOOSE (product_price, product_name OF B)は、Bにマップされる行で最も高額な製品のproduct_nameを返します。

descriptive_col_exprにはどのデータ型があってもかまいません。qualifying_col_exprには、並べ替え可能なデータ型が必要です(SMALLINT、INTEGER、BIGINT、DOUBLE PRECISION、DATE、TIME、TIMESTAMP、VARCHAR、またはCHARACTER)。

MIN_CHOOSE (
  quantifying_col_expr,
  descriptive_col_expr
  OF symbol_list )
一致行のdescriptive_col_expr値を並べ替えられた最低のqualifying_col_expr値とともに返します。例えば、MIN_CHOOSE (product_price, product_name OF B)は、Bにマップされる行で最も低額な製品のproduct_nameを返します。

descriptive_col_exprにはどのデータ型があってもかまいません。qualifying_col_exprには、並べ替え可能なデータ型が必要です(SMALLINT、INTEGER、BIGINT、DOUBLE PRECISION、DATE、TIME、TIMESTAMP、VARCHAR、またはCHARACTER)。

DUPCOUNT (
  col_expr OF symbol_list )
一致行のcol_exprの重複カウントを返します。つまり一致行ごとに、関数は直前の一致行にあるcol_exprの現行値の出現回数を返します。

col_exprがORDER BY col_exprでもある場合、この関数はROW_NUMBER()-RANK()に相当する値を返します。

DUPCOUNTCUM (
  col_expr OF symbol_list )
一致行のcol_exprの累積重複カウントを返します。つまり一致各行ごとに、この関数は、先行するすべての一致行にあるcol_exprの現行値の出現回数を返します。

col_exprがORDER BY col_exprでもある場合、この関数はROW_NUMBER()-DENSE_RANK()と同等の値を返します。

ACCUMULATE (
  [ DISTINCT | CDISTINCT ]
  col_expr OF symbol_list
  [ DELIMITER 'delimiter'] )
一致行ごとに、col_exprdelimiterで区切られた連結値を返します。デフォルトの区切り記号は', 'です(カンマの後にスペースが続きます)。

DISTINCTは、連結される値を固有値に制限します。

CDISTINCTは、連結される値を連続する固有値に制限します。

col_exprにある文字は、LATIN文字セットに属する必要があります。UNICODE文字セットによる文字の場合は、それらをLATINに変換します。 例えば、次のようになります。
TRANSLATE (col_expr USING UNICODE_TO_LATIN) as col_expr

複数のシンボルに対して集約を計算できます。例えばSUM (val OF ANY (A,B))は、AまたはBにマップされる一致セグメントのすべての行で、val属性の値の合計を計算します。