我需要用SQL Impala/Have计算字符串中的单词。最好的方法是什么?在Oracle中,我使用regexp_count()函数,如下例所示:
SELECT regexp_count('1aa 2bb 3cc', '\s*[a-z]+\s*'); -- result: 3
在 Impala /Hive中,我们不能使用上述功能。实现这一目标的最佳方式是什么?提前道谢
6yoyoihd1#
你能简单地用这个公式吗--字数=空格数+1。因此计算总长度,然后计算被空字符串删除或替换的所有空格的长度。从第二个开始减去第一个,你会得到空格的个数。将其加1。
select length('1aa 2bb 3cc') - length(replace('1aa 2bb 3cc',' ',''))+1
1条答案
按热度按时间6yoyoihd1#
你能简单地用这个公式吗--字数=空格数+1。
因此计算总长度,然后计算被空字符串删除或替换的所有空格的长度。从第二个开始减去第一个,你会得到空格的个数。
将其加1。