只想知道在SQL Server中是否可以完全执行以下操作
我有一个包含3列的表格 - SENTENCE ID (PK)
,SENTENCE
(任意长度的字符串),PATTERNS
(这些是2个或3个字的模式,可在{{{ 1}})。
我需要找到所有不同SENTENCE
之间的相关性。
如果我在外部(使用python和ODBC)执行此操作,我需要执行以下步骤
对于每个不同的PATTERN
下一步
答案 0 :(得分: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中执行此操作。