SQL进阶--2__如何使用hiveSQL统计字符串中字符的个数

本文介绍了如何通过SQL查询统计字符串内某个字符的个数,具体方法是利用regexp_replace函数替换目标字符为空,然后计算原始字符串长度与替换后长度的差值,再除以目标字符的长度即可得出计数结果。

0-需求

统计在字符串"HELLO HELLO"中出现了多少个LL

1-分析

分析思路
(1) 用regexp_replace()函数将要计算的字符替换为’'

select regexp_replace("HELLO HELLO","LL",'')
0: jdbc:hive2://10.9.4.117:10000> select regexp_replace("HELLO HELLO","LL",'');
+----------+--+
|   _c0    |
+----------+--+
| HEO HEO  |
+----------+--+

(2 )用字符串的总长度减去替换字符后的串长度,得到要计算的字符总长度

select (length("HELLO HELLO")) - (length(regexp_replace("HELLO HELLO","LL",'')))
0: jdbc:hive2://10.9.4.117:10000> select (length("HELLO HELLO")) - (length(regexp_replace("HELLO HELLO","LL",'')));
+------+--+
| _c0  |
+------+--+
| 4    |
+------+--+
1 row selected (0.389 seconds)

(3) 用步骤2的结果除以统计字符的长度,就是字符的个数

最终sql如下所示:

select (length("HELLO HELLO") - length(regexp_replace("HELLO HELLO","LL",''))) / length("LL")
0: jdbc:hive2://10.9.4.117:10000> select (length("HELLO HELLO") - length(regexp_replace("HELLO HELLO","LL",''))) / length("LL");
+------+--+
| _c0  |
+------+--+
| 2.0  |
+------+--+
1 row selected (0.328 seconds)

2-总结

本文给出了一种统计字符串中字符个数的方法,其主要技巧就是利用regexp_replace()函数将需要的统计的字符用空串(’’)代替,然后用字符串的总长度减去替代后的字符串的长度除以需要计算的字符长度,就是所需要统计的个数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值