hive 统计字符串中指定字符的个数

需求

现有一个字符串,使用hivesql  统计指定字符出现的次数,比如一个字符串 “love hive”,现在需要统计“ve” 在字符串中出现的个数
select "love hive" str;
love hive

实现方案

1、先将目标字符串里的匹配字符串替换成空

select regexp_replace("love hive","ve",'') str;
lo hi

2、使用函数第一步的结果字符串的长度,在计算原有字符串的长度,两者进行求差值

select abs(length(regexp_replace("love hive", "ve", '')) - 
length("love hive")) str_l;
4

4、用差值/匹配字符串的长度即可

select abs(length(regexp_replace("love hive", "ve", '')) - length("love hive")) / 
       length("ve") str_l;
2

可见:匹配字符串出现了两次。

 

posted @   晓枫的春天  阅读(7939)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示