0

只想知道以下是否可以在 SQL Server 中完全完成

我有一个表,它有 3 列 - SENTENCE ID (PK)SENTENCE(任意长度的字符串),PATTERNS(这些是在 中找到的 2 或 3 个单词模式SENTENCE)。

我需要找到所有不同PATTERNS的相互之间的相关性。

如果我在外部进行(使用 python 和 ODBC),我需要执行以下步骤

对于每个不同的模式

  1. 获取 PATTERN 的计数
  2. 查找所有具有该 PATTERN 的句子 ID
  3. 获取上述句子 ID 中出现的所有 PATTERNS 的计数
  4. 在 step3 中将当前 PATTERN 及其计数(作为列)附加到表中。
  5. 继续将上表作为行附加到结果表中

下一个

4

1 回答 1

0

让我假设 PATTERN 遵循like表达式的形式。而且,您只想计算一个句子的模式一次。

如果是这样,您可以执行以下操作。获取所有句子和模式之间的匹配:

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 回答