Sql 我可以将json_数组_长度与条件一起使用吗?
我正在查询一个包含JSON的字段: 字段json_数据的示例数据点如下所示:Sql 我可以将json_数组_长度与条件一起使用吗?,sql,presto,amazon-athena,Sql,Presto,Amazon Athena,我正在查询一个包含JSON的字段: 字段json_数据的示例数据点如下所示: apples= [{"CHAR_STARS":1,"CHAR_A1_LVL":1}, {"CHAR_STARS":1,"CHAR_A1_LVL":2}] 我可以通过json\u数组长度(json\u data['apples'])获得苹果的计数,在本例中返回2 我只想数那些CHAR_A1_LVL>1的是什么?在这种情况下,将返回1 如何做到这一点?假设您的JSON数据具有常规模式,您可以将其转换为数组(行(char\
apples=
[{"CHAR_STARS":1,"CHAR_A1_LVL":1},
{"CHAR_STARS":1,"CHAR_A1_LVL":2}]
我可以通过json\u数组长度(json\u data['apples'])
获得苹果的计数,在本例中返回2
我只想数那些CHAR_A1_LVL>1的是什么?在这种情况下,将返回1
如何做到这一点?假设您的JSON数据具有常规模式,您可以将其转换为
数组(行(char\u stars bigint,char\u a1\u lvl bigint))
,并与a一起使用以选择符合所需条件的元素
例如:
数据(x)为(
值“[{“CHAR_STARS”:1,“CHAR_A1_LVL”:1},{“CHAR_STARS”:1,“CHAR_A1_LVL”:2}”
)
选择基数(
滤器(
强制转换(json_解析(x)为数组(行(char_stars bigint,char_a1_lvl bigint)),
r->r.char(1层以上)
根据数据;