使用 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
请注意,如果一条评论包含多个关键字,它将显示在两个关键字的计数中。
我正在尝试编写一个 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
请注意,如果一条评论包含多个关键字,它将显示在两个关键字的计数中。