nPath構文要素 - 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
Mode
パターンマッチング モードを指定します。
オプション 説明
OVERLAPPING 以前見つかった一致に含まれるかどうかを問わず、パーティションにあるすべてのパターンを検索します。1つの行は、特定の一致パターンにある複数のシンボルと一致する場合もあります。
NONOVERLAPPING 最後のパターン一致に続く行で次のパターン検索を開始します。
Pattern
関数による検索の対象となるパターンを指定します。patternの作成には、シンボル(Symbols構文要素で定義)、演算子、括弧を使用します。

パターンに複数の演算子がある場合、関数はそれらを優先順に適用し、同じ優先順位の演算子は左から右に適用します。関数がサブパターンを最初に評価するように強制するには、サブパターンを括弧で囲みます。詳細は、nPath Patternを参照してください。

Symbols
Pattern構文要素とResult構文要素の値に表示されるシンボルを定義します。col_exprは値が列名の式、symbolは任意の有効な識別子、symbol_predicateはSQL述部(多くの場合に列名)です。

例えば、このSymbols構文要素はWebサイト閲覧を分析するために使用します。

Symbols (
  pagetype = 'homepage' AS H,
  pagetype <> 'homepage' AND pagetype <> 'checkout' AS PP,
  pagetype = 'checkout' AS CO
)

symbolは文字の大小を区別しませんが、大文字1文字または2文字のsymbolはパターンで容易に識別できます。

col_exprが複数の入力テーブルに表示される列を表わす場合は、あいまいな列名をテーブル名で修飾する必要があります。例えば、次のようになります。

Symbols (
  weblog.pagetype = 'homepage' AS H,
  weblog.pagetype = 'thankyou' AS T,
  ads.adname = 'xmaspromo' AS X,
  ads.adname = 'realtorpromo' AS R
)

Pattern構文要素の値に表示されるシンボルの詳細については、nPath Symbolsを参照してください。Result構文要素の値に表示されるシンボルの詳細については、nPath Resultを参照してください。

Filter
[オプション]一致行に適用するフィルタを指定します。この関数は、AND演算子を使用してフィルタ式を結合します。

これはfilter_expression構文です。

symbol_expression comparison_operator symbol_expression

2つのシンボル式は、型互換である必要があります。これはsymbol_expression構文です。

{ FIRST | LAST }(column_with_expression OF [ANY](symbol[,...]))

column_with_expressionにはANDまたはOR演算子を含めることができず、そのすべての列が同じ入力による必要があります。関数に複数の入力がある場合、column_with_expressionとシンボルが同じ入力による必要があります。

comparison_operatorは、<><=>==、または<>のいずれかです。

結果
出力列を定義します。col_exprは、値が列名となる式です。一致行から取得する値を指定します。この関数はaggregate_functionをこれらの値に適用します。詳細については、nPath Resultを参照してください。

この関数は、パーティションのすべての一致パターンについて、この構文要素を1回評価します(つまりパターン一致ごとに1行を出力します)。