Sql: 多关键词搜索投诉数据集
Sql: Multiple keywords search for complaints data set
我正在处理投诉数据集,我正在根据数据集从关键字词典中寻找匹配的关键字。
这里是关键词词典-
示例关键字字典
------------------------
借记卡
信用卡
提款机
贷款
示例数据集 -
并且,示例输出 -
也就是说,我希望关键字词典中的关键字与我的数据集中的 "complaint description" 列相匹配。而且,我只希望匹配的关键字显示在 "Keywords Matched" 列中,以及 "Count" 列中匹配的关键字总数。
这只是一个示例,我的实际数据集很大而且它可能还涉及 "Complaint Description" 外语。你能帮我看看怎么做吗?
非常感谢!!
假设您的示例数据 table 是 [Sample Data-set]
并且您将关键字保存在名为 [Keyword]
的 table 中(列名 Keyword
)。试试这个:
WITH CTE AS
(
SELECT Detail.*, [Keywords Matched] = STUFF((select ',' + Keyword
FROM KEYWORD as b
WHERE Detail.[Complaint Description] like '%' + b.Keyword + '%'
ORDER BY Keyword DESC
FOR XML PATH('')), 1,1,'')
FROM [Sample Data-set] as Detail
GROUP BY Detail.BranchID, Detail.Portfolio, Detail.[Complaint Description]
)
SELECT *, len([Keywords Matched]) - len(replace([Keywords Matched], ',','')) + 1 as [Count]
FROM CTE
GROUP BY BranchID, Portfolio, [Complaint Description], [Keywords Matched]
我正在处理投诉数据集,我正在根据数据集从关键字词典中寻找匹配的关键字。
这里是关键词词典-
示例关键字字典
------------------------
借记卡
信用卡
提款机
贷款
示例数据集 -
并且,示例输出 -
也就是说,我希望关键字词典中的关键字与我的数据集中的 "complaint description" 列相匹配。而且,我只希望匹配的关键字显示在 "Keywords Matched" 列中,以及 "Count" 列中匹配的关键字总数。
这只是一个示例,我的实际数据集很大而且它可能还涉及 "Complaint Description" 外语。你能帮我看看怎么做吗?
非常感谢!!
假设您的示例数据 table 是 [Sample Data-set]
并且您将关键字保存在名为 [Keyword]
的 table 中(列名 Keyword
)。试试这个:
WITH CTE AS
(
SELECT Detail.*, [Keywords Matched] = STUFF((select ',' + Keyword
FROM KEYWORD as b
WHERE Detail.[Complaint Description] like '%' + b.Keyword + '%'
ORDER BY Keyword DESC
FOR XML PATH('')), 1,1,'')
FROM [Sample Data-set] as Detail
GROUP BY Detail.BranchID, Detail.Portfolio, Detail.[Complaint Description]
)
SELECT *, len([Keywords Matched]) - len(replace([Keywords Matched], ',','')) + 1 as [Count]
FROM CTE
GROUP BY BranchID, Portfolio, [Complaint Description], [Keywords Matched]