これがシナリオです。
SQL Server2008R2テーブルに次の2つのレコードがあります。
ID Name
1 Joe Stephen Brown
2 Joe Henry Wallace Brown
3 Jerry Joe Carr
4 Jerry Lewis
名前列をトークン化し、トークンが関連付けられているIDとともにトークンテーブルに配置したので、次のようになります。
ID Token
1 Joe
1 Stephen
1 Brown
2 Joe
2 Henry
2 Wallace
2 Brown
3 Jerry
3 Joe
3 Carr
4 Jerry
4 Lewis
このテーブルで自己結合を実行して、自己結合の一方のテーブルのトークンが自己結合のもう一方のテーブルのトークンと一致する回数をカウントできるようにしたいと思います。したがって、一致は次のようになります。
Table1.ID Table1.Token Table2.ID Table2.Token
1 Joe 2 Joe
1 Brown 2 Brown
1 Joe 3 Joe
3 Jerry 4 Jerry
(レコード1と2には2つのトークン一致(「Joe」と「Brown」)があり、レコード1と3には1つ(「Joe」)、レコード3と4には1つ(「Jerry」)があります。)
ですから、試合の最終報告は次のようにしたいと思います。
Table1.ID Table2.ID Number of matches
1 2 2
1 3 1
3 4 1
しかし、私はこれを行う方法に困惑しています。トークンだけで自己結合を行うことを考えましたが、トークンテーブルに「Joe」と「Brown」を含む他のレコードがあると複雑になります。
編集
このようなシナリオがある場合:
ID Name
1 Joe Stephen Brown
2 Joe Henry Brown Brown
可能であれば、一致数を2にしたいと思います。つまり、「JoeStephenBrown」の「Brown」は「JoeHenryBrownBrown」の最初の「Brown」と一致し、「JoeHenryBrownBrown」の2番目の「Brown」は一致しないままである必要があります。次に、「ジョー」>「ジョー」と「ブラウン」>最初の「ブラウン」の両方の一致をカウントする必要があります。