コンテンツにスキップ

2つの文字列間の Jaro-Winkler 距離を計算します。文字列間の類似度の測定によく使われ、値は 0.0(まったく異なる)から 1.0(同一の文字列)の範囲になります。

func.jaro_winkler(<string1>, <string2>)
func.jaro_winkler('databend', 'Databend')
┌───────────────────────────────────────────┐
│ func.jaro_winkler('databend', 'Databend') │
├───────────────────────────────────────────┤
│ 0.9166666666666666 │
└───────────────────────────────────────────┘
JARO_WINKLER(<string1>, <string2>)

JARO_WINKLER 関数は、2つの入力文字列の類似度を表す FLOAT64 値を返します。戻り値は次のルールに従います。

  • 類似度の範囲: 結果は 0.0(まったく異なる)から 1.0(同一)の範囲になります。

    SELECT JARO_WINKLER('databend', 'Databend') AS similarity;
    ┌────────────────────┐
    │ similarity │
    ├────────────────────┤
    │ 0.9166666666666666 │
    └────────────────────┘
    SELECT JARO_WINKLER('databend', 'database') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 0.9 │
    └────────────┘
  • NULL の扱い: string1 または string2 のいずれかが NULL の場合、結果は NULL になります。

    SELECT JARO_WINKLER('databend', NULL) AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ NULL │
    └────────────┘
  • 空文字列:

    • 2つの空文字列を比較すると 1.0 を返します。
    SELECT JARO_WINKLER('', '') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 1 │
    └────────────┘
    • 空文字列と空でない文字列を比較すると 0.0 を返します。
    SELECT JARO_WINKLER('databend', '') AS similarity;
    ┌────────────┐
    │ similarity │
    ├────────────┤
    │ 0 │
    └────────────┘