presto 支持regexp_count

发布时间:2024年01月16日

一、背景

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

文章来源:https://blog.csdn.net/qq_34819372/article/details/135623431
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。