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

在ClickHouse中实现文本按每行最多5个词拆分的方法

解决方案

可以通过ClickHouse的数组函数组合实现按每行最多5个词拆分文本,以下是完整的查询语句:

WITH splitByWhitespace(text) AS words_array
SELECT arrayStringConcat(arraySlice(words_array, (num - 1) * 5 + 1, 5), ' ') AS text
FROM texts
CROSS JOIN (SELECT number + 1 AS num FROM numbers(ceil(length(words_array) / 5)))

语句说明

  • splitByWhitespace(text):将原文本按空格拆分为单词数组,保留单词附带的标点(如amet,、aliqua.)。
  • ceil(length(words_array)/5):计算需要拆分的总行数,确保最后不足5个词的部分也能单独成一行。
  • numbers(...):生成对应数量的行号(从1开始),用于分组截取单词数组。
  • arraySlice(words_array, (num-1)*5 +1, 5):根据行号截取数组中对应位置的5个元素(最后一组可能不足5个)。
  • arrayStringConcat(..., ' '):将截取到的子数组元素用空格拼接成完整的行文本。

执行该查询后,就能得到你期望的拆分结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 07:10:04