0

SQLServerで次のことが完全に実行できるかどうかを知りたいだけです

私は3つの列を持つテーブルを持っています- SENTENCE ID (PK)SENTENCE(任意の長さの文字列)、PATTERNS(これらはにある2つまたは3つの単語パターンですSENTENCE)。

私はすべての異なるものの相互の相関関係を見つける必要がありますPATTERNS

外部で(PythonとODBCを使用して)実行する場合は、次の手順を実行する必要があります

個別のパターンごとに

  1. パターンの数を取得します
  2. そのパターンを持つすべての文IDを検索します
  3. 上記のセンテンスIDで発生するすべてのパターンのカウントを取得します
  4. 手順3で、現在のPATTERNとそのカウント(列として)をテーブルに追加します。
  5. 上記のテーブルを行として結果テーブルに追加し続けます

4

1 に答える 1

0

PATTERN が式の形式に従うと仮定しましょうlike。そして、文のパターンを 1 回だけ数えたいとします。

その場合、次のことができます。すべての文とパターンの一致を取得します。

with sp as (
       select s.sentenceID, p.pattern, count(*) over (partition by p.pattern) as NumSentences
       from Sentences s join
            Patterns p
            on s.sentence like p.pattern
     )
select sp1.pattern, sp2.pattern,
       sp1.pattern as Pattern1Count, sp2.pattern as Pattern2Count,
       count(*) as BothCount
from sp sp1 join
     sp sp2
     on sp1.pattern < sp2.pattern    -- <= if you want counts for a single pattern
group by sp1.pattern, sp2.pattern

必要な出力の種類を明示的には言いませんが、これで十分です。

したがって、いくつかの合理的な仮定があれば、SQL でこれを行うことができます。

于 2013-01-16T20:41:26.700 に答える