首页 > 其他分享 >解析json array presto 语法

解析json array presto 语法

时间:2022-08-31 18:36:40浏览次数:75  
标签:name presto max min json INTEGER array avg

示例:
{data=[{"name":"col1","min":0,"max":32,"avg":29},
{"name":"col2","min":1,"max":35,"avg":21},
{"name":"col3","min":4,"max":56,"avg":34}]}

sql:

with mydata as (
select '{"data":[{"name":"col1","min":0,"max":32,"avg":29},
{"name":"col2","min":1,"max":35,"avg":21},
{"name":"col3","min":4,"max":56,"avg":34}]}' json
)

select max(case when x.name = 'col1' then x.min end) min_col1,
max(case when x.name = 'col3' then x.avg end) avg_col3
from mydata
CROSS JOIN
UNNEST(
CAST(
JSON_EXTRACT(json,'$.data')
as ARRAY(ROW(name VARCHAR, min INTEGER, max INTEGER, avg INTEGER))
)
) as x(name, min, max, avg) --column aliases

示例:
[{"name":"col1","min":0,"max":32,"avg":29},
{"name":"col2","min":1,"max":35,"avg":21},
{"name":"col3","min":4,"max":56,"avg":34}]

sql:

with mydata as (
select '[{"name":"col1","min":0,"max":32,"avg":29},
{"name":"col2","min":1,"max":35,"avg":21},
{"name":"col3","min":4,"max":56,"avg":34}]' json
)

select *
from mydata
CROSS JOIN
UNNEST(
CAST(
json_parse(json)
as ARRAY(ROW(name VARCHAR, min INTEGER, max INTEGER, avg INTEGER))
)
) as x(name, min, max, avg) --column aliases

转:https://www.5axxw.com/questions/content/5pdlaf

标签:name,presto,max,min,json,INTEGER,array,avg
From: https://www.cnblogs.com/cnblogszs/p/16644141.html

相关文章

  • fastjson漏洞利用学习
    FastJson漏洞利用学习前置知识了解Fastjson反序列化漏洞我们还需要一些前置知识。好比如什么是JNDI,JNDI注入?JNDI简介JNDI(JavaNamingandDirectoryInterface,Java命......
  • JSON.parse(JSON.stringify()) 实现对对象的深拷贝
    JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了就是利用JSON.stringify将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;序列化的作......
  • numpy基本属性,numpy创建array
    基本属性importnumpyasnparray=np.array([[1,2,3],[4,5,6]])array.dtype返回矩阵的数据类型array.ndim返回该矩阵是几维的array.size返回矩阵的大小(元素的......
  • QByteArray类的介绍
    QByteArray可以存储原生的二进制数据和8位编码的文本数据。对于文件,即便是一个文本文件,读出时也可以按照二进制的形式读出,这就是二进制格式。如果把这些二进制的0、1串按照......
  • Arrays.asList() 报UnsupportedOperationException异常
    Arrays中的asList方法将数组转为List<>之后,用remove和add方法会报UnsupportedOperationException异常1、asList是通过新建一个ArrayList来接收String[]的数值。  2......
  • geopandas 生成 geojson 文件
    创建GeoDataFrame 输出geojson文件importgeopandasss=np.stack((lon.flatten(),lat.flatten()),1)ss1=[Point(ss[0].tolist())foriinss]print(ss)......
  • JSON WEB TOKEN
    1、JSONWEBTOKEN1.1、什么是JWTJSONWebToken(JWT)是一个非常轻巧的规范。这个规范允许我们使用JWT在用户和服务器之间传递安全可靠的信息。简称JWT,在HTTP通信过程中,进......
  • 通过createDataset创建Dataset数据集(Array,RDD,List)
    说明定义:底层用到了函数的柯里化,需要传递两个值。第二个值是一个隐式参数,需要定义一个隐式变量给隐式参数传递值。隐式变量不需要我们定义在SparkSession中全部给......
  • 将获取的['json字段'] 转为csv 文件 - 数据转格式化处理
    用到的函数:1、eval():eval()函数常被称为评估函数,它的功能是去掉参数最外侧引号,变成python可执行的语句,并执行语句的函数。2、isinstance():isinstance()函数来判断一......
  • MySQL中JSON使用
    在使用数据库存储数据时,经常会用到json方式;比如产品的各种属性,这时候又不能确定每一样产品有多少属性,因此直接存json可以避免扩展数据库字段,使之更为灵活.MySQL自5.......