You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

技术求助:如何找出字符串字段中使用频率最高的三个单词

找出字符串中频率最高的三个单词

Hey Arek, 很高兴能帮你解决这个问题!你已经能计算单个单词的出现次数了,接下来只需要把字符串拆分成独立单词,再统计每个单词的频次,最后筛选出Top 3就可以啦。下面给你两种适用于SQL Server的解决方案:

方案1:使用STRING_SPLIT函数(SQL Server 2016及以上版本)

这个方法最简洁,利用内置的STRING_SPLIT函数直接拆分空格分隔的字符串,然后分组统计:

DECLARE @string VARCHAR(MAX)
SET @string = 'mouse cat dog elephant chicken cat dog elephant cat dog elephant cat dog cat elephant cat lion dog elephant cat dog elephant lion cat dog elephant cat dog elephant cat dog elephant cat dog cat dog cat dog chicken lion'

-- 拆分字符串并统计词频,取Top 3
SELECT TOP 3 
    VALUE AS 单词,
    COUNT(*) AS 出现次数
FROM STRING_SPLIT(@string, ' ')
WHERE VALUE <> '' -- 排除可能的空字符串(如果原字符串有连续空格的话)
GROUP BY VALUE
ORDER BY COUNT(*) DESC

代码解释:

  • STRING_SPLIT(@string, ' '):把原字符串按空格拆分成一行行的单词
  • GROUP BY VALUE:按单词分组
  • COUNT(*):统计每个组的行数,也就是单词出现的次数
  • ORDER BY COUNT(*) DESC:按频次从高到低排序
  • TOP 3:取前三个高频词

方案2:递归CTE拆分(兼容低版本SQL Server)

如果你的SQL Server版本低于2016,不支持STRING_SPLIT,可以用递归CTE来手动拆分字符串:

DECLARE @string VARCHAR(MAX)
SET @string = 'mouse cat dog elephant chicken cat dog elephant cat dog elephant cat dog cat elephant cat lion dog elephant cat dog elephant lion cat dog elephant cat dog elephant cat dog elephant cat dog cat dog cat dog chicken lion'

-- 递归CTE拆分字符串
WITH SplitWords AS (
    SELECT 
        LEFT(@string, CHARINDEX(' ', @string + ' ') - 1) AS 单词,
        STUFF(@string, 1, CHARINDEX(' ', @string + ' '), '') AS 剩余字符串
    UNION ALL
    SELECT 
        LEFT(剩余字符串, CHARINDEX(' ', 剩余字符串 + ' ') - 1) AS 单词,
        STUFF(剩余字符串, 1, CHARINDEX(' ', 剩余字符串 + ' '), '') AS 剩余字符串
    FROM SplitWords
    WHERE 剩余字符串 <> ''
)

-- 统计词频并取Top 3
SELECT TOP 3 
    单词,
    COUNT(*) AS 出现次数
FROM SplitWords
WHERE 单词 <> ''
GROUP BY 单词
ORDER BY COUNT(*) DESC

代码解释:

  • 递归CTESplitWords:第一次取第一个空格前的单词,然后用STUFF去掉已拆分的部分,重复这个过程直到剩余字符串为空
  • 后续的分组统计和排序逻辑和方案1一致

这样就能轻松得到你想要的频率最高的三个单词啦!

内容的提问来源于stack exchange,提问作者arhetyp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:08:02