SQL Server-计算一个单词在列中存在多少次

问题描述 投票:0回答:2

我有一个字符串'ABC〜XYZ〜123'和表1:

1 | XYZ 
2 | ABC
3 | XYZ~ABC~AAA
4 | 123~ABC

然后,我通过SQL分割了字符串

Select VALUE FROM STRING_SPLIT('ABC~XYZ~123','~')

返回是

ABC
XYZ
123

例如,我想计算每个单词在拆分后在表1中的存在次数:

预期输出是

ABC|3
XYZ|2
123|1

对此有何想法?

sql-server ssms ssms-2016
2个回答
0
投票

除了注释中的建议之外,还可以如下使用Count()功能。但是以这种格式存储将使您难以提取以及与其他表连接。

Select VALUE, Count(*) as [NoCount] from(
 Select Value FROM STRING_SPLIT('ABC~XYZ~123','~')
)a group by Value

0
投票

您的下一步应该如下所示:

CREATE TABLE Keywords(SplittedWord varchar(255))
INSERT INTO Keywords (SplittedWord) VALUES ('ABC'),('ABC'),('ABC'),('XYZ'),('XYZ'),('123')

select count(*) from Keywords group by SplittedWord
© www.soinside.com 2019 - 2024. All rights reserved.