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]