使用 SQL 在列中查找常见的子字符串

Find common substrings in a column using SQL

我正在尝试编写一个 SQL 查询,它将能够提供最常存储的消息。例如,有一个数据库存储了关于特定主题的多条消息。并非所有用户都存储了相同的消息。

id | name | comment
-------------------------------
1  | John | catching
2  | Bill | assistance with catching

上面的示例显示了我想与之区分的 table。这两个是同一类别的捕捉。需要一个 SQL 查询来知道这是相同的并且只会显示一次

如果您可以指定要匹配的关键字列表,您可以这样做:

declare @keywords table
(
    word varchar(100)
)
insert into @keywords values ('catching')
insert into @keywords values ('unicorns')

select kw.word, count(*) as NumMessages
from your_table t
inner join @keywords kw on t.comment like '%' + kw.word + '%'
group by kw.word
order by NumMessages

请注意,如果一条评论包含多个关键字,它将显示在两个关键字的计数中。