计算短语中的单词数-sql

x8diyxa7  于 2021-06-25  发布在  Hive
关注(0)|答案(2)|浏览(491)

如果我们有短语“我叫玛丽”。我想得到4的输出,因为句子中有4个单词。
我要用sql写这个。我使用了函数length,但它是按字母计数的。
有什么帮助吗?

13z8s7eq

13z8s7eq1#

你可以试试这个:

select size(split(str, " ")) from your_table;

或:

select length(regexp_replace(str, '[^ \t\r\n\v\f]', '')) + 1 from your_table;
bfrts1fy

bfrts1fy2#

假设单词由单个空格分隔,则可以使用count and replace方法:

select length(str) - length(replace(str, ' ', '')) + 1

这将计算空格数并加1。
编辑:
要处理一行中的多个空格,可以将其调整为:

select length(regexp_replace(str, ' +', ' ')) - length(replace(str, ' ', '')) + 1

相关问题