presto 支持regexp_count

一、背景

1、查询regexp_count 函数提示未注册

用户想正则查询特定字符出现次数

function regexp_count not registered

二、调研

1、官网地址:

Presto Documentation — Presto 0.284 Documentation

2、regexp_extract_all

Regular Expression Functions — Presto 0.284 Documentation

对字典正则处理,获取全量数组

SELECT regexp_extract_all('1a 2b 14m', '(\d+)([a-z]+)', 2); -- ['a', 'b', 'm']

注意这里查询结果是数组

3、cardinality

Array Functions and Operators — Presto 0.284 Documentation

我们需要获取上面正则处理完成的数组长度

SELECT cardinality(regexp_extract_all('1a 2b 14m', '(\d+)([a-z]+)', 2));

三、实现

获取字符中 ”,“ 数量
SELECT  
live_learn_interval,
regexp_extract_all(live_learn_interval,','),
cardinality(regexp_extract_all(live_learn_interval,',')) 
FROM db_a.tb_b 
WHERE dt ='20240115' limit 10

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值