0.zepplin中使用presto
%presto
-- 用户信息查询
select
id,name,phone,age
from biz.users
1.presto正则表达式
-- 查询中文
select regexp_extract(ext,'[\u4e00-\u9fa5]+')
-- 查询电话号码
select regexp_extract('25120821384753112345','1[3-9][0-9]{9}')
-- 查询已id=开始的数字
select regexp_extract('xxxx?id=143500&xxxxx','(?<=id\=)(\d+)')
2.解析json
select json_extract_scalar(details, '$.rule')
select json_extract(details, '$.rule')
3.presto时间
-- 查询今天
select current_date
-- 查询昨天
select date_add('day',-1,current_date)
-- 查询前7天
select date_add('day',-7,current_date)
-- 查询本月第1天
select date_trunc('month', current_date)
-- 计算时间差:unit为day,month,year等
select date_diff(unit, timestamp1, timestamp2)
-- sparksql语法:
select date_add(current_date,-1)
4.presto保留百分位
select concat(cast(round(分子*1.00/分母*100,2) as varchar),'%')
5.presto炸裂函数
炸裂函数用的比较少,主要用于一行转多行
select
id,
shop_order_sub_id as orders,
order_id
from biz.supplier_shop_order
CROSS JOIN UNNEST(split(shop_order_sub_id, ',')) as t(order_id)
网友评论