StringSimilarity構文要素 - 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
ComparisonColumnPairs
比較する文字列を含んでいる入力テーブル列の名前(column1column2)、それらを比較する方法(comparison_type)、さらに(オプションで)定数と出力列の名前をそれらの類似度に合わせて(output_column)、それぞれ指定します。類似度は範囲[0, 1]の値です。
column1column2の場合:
  • column1またはcolumn2に特殊文字(アルファベット文字、数字、アンダースコア(_)以外の文字)が含まれている場合は、列名を二重引用符で囲みます。例えば、column1column2がc(col1)とc(col2)の場合、それぞれを"c(col1)"と"c(col2)"として指定します。
    column1またはcolumn2に二重引用符が含まれている場合は、それぞれの二重引用符を二重引用符のペアで置き換えます。例えば、column1column2がc1"cとc2"cの場合は、それぞれを"c1""c"と"c2""c"として指定します。
    これらのルールはoutput_columnには適用されません。例えば、次の構文は有効です。ComparisonColumnPairs ('jaro ("c1""c", "c2""c") AS out"col')
  • column1またはcolumn2が200文字を超える文字数をサポートしている場合は、次の例のようにVARCHAR(200)にキャストできます。ただし、文字列は切り捨てられる場合があります。CAST操作の詳細については、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。
    SELECT * FROM StringSimilarity (
      ON (
        SELECT id, CAST(a AS VARCHAR(200)) AS a, CAST(b AS VARCHAR(200)) AS b
        FROM max_varchar_strlen
      ) PARTITION BY ANY
      USING
      ComparisonColumnPairs ('ld(a,b) AS sim_fn')
      Accumulate ('id')
    ) AS dt ORDER BY 1;
    
comparison_typeでは、次のいずれかの値を使用します。
comparison_type 説明
'jaro' ジャロ距離。
'jaro_winkler' ジャロ-ウィンクラー距離: 完全一致の場合は1、それ以外の場合は0です。この比較型を指定した場合は、係数pの値をconstantによって指定できます。0≤ p ≤ 0.25。デフォルト: p = 0.1
'n_gram' N-gramの類似度。この比較型を指定する場合は、constantによってNの値を指定できます。デフォルト: N = 2
'LD' レーベンシュタイン距離: ある文字列から他の文字列への変換に必要な編集の数。編集は個々の文字の挿入、削除、または置換です。
'LDWS' 置換なしのレーベンシュタイン距離: 個々の文字の挿入または削除のみを使用した、ある文字列から他の文字列への変換に必要な編集の数。
'OSA' 最適な文字列の配置距離: ある文字列から他の文字列への変換に必要な編集の数。編集は、文字の挿入、削除、置換、または転置です。部分文字列は1回だけ編集できます。
'DL' ダムロー-レーベンシュタイン距離: 'OSA'と同様でが、部分文字列を何回でも編集できる点が異なります。
'hamming' ハミング距離: 同じ長さの文字列では、対応する文字が異なる位置の数(つまり、ある文字列から他の文字列への変換に必要な最小の置換数)。異なる長さの文字列では、-1。
'LCS' 最長共通部分文字列: 両方の文字列に共通する最長の部分文字列の長さ。
'jaccard' Jaccard係数ベースの比較。
'cosine' コサインの類似度。
'soundexcode' 英文字列のみ: いずれかの文字列に英文字以外の文字がある場合は-1。それ以外の場合は、soundexコードが同じ場合は1、それ以外の場合は0です。
関数はすべてのcomparison_typeconstantを無視します。ただし'jaro_winkler''n_gram'を除きます。
列のすべてのペアに異なるcomparison_typeを指定できます。
デフォルト: output_columnは'sim_i'、ここでiは列ペアの連番。
CaseSensitive
[オプション]文字列比較が文字の大小を区別するかどうかを指定します。すべてのペアに対して1つの値、または各ペアに1つの値を指定できます。各ペアに1つの値を指定した場合、i番目の値はi番目のペアに該当します。
デフォルト: 'false'
Accumulate
[オプション]出力テーブルにコピーする入力テーブル列の名前を指定します。