请寻求帮助。
我在Athena中有一栏,其类型如下:
array<struct<addedtitle:string,addedvalue:double,keytitle:string,key:string,recvalue:double,unit:string,isbalanced:boolean
例如-行之一是:
[{addedtitle=Sodium Carbonate, addedvalue=null, keytitle=Increase PH, key=p9, recvalue=0.8999999999999999, unit=lbs, isbalanced=null}, {addedtitle=Soduim Hypochlorite (12%), addedvalue=15.0, keytitle=Increase Chlorine, key=p8, recvalue=18.218999999999998, unit=fl oz, isbalanced=null}, {addedtitle=Sodium Bicarbonate, addedvalue=32.0, keytitle=Increase Alkalinity, key=p10, recvalue=33.6, unit=oz, isbalanced=null}, {addedtitle=Calcium Chloride (100%), addedvalue=86.0, keytitle=Increase Calcium Hardness, key=p6, recvalue=88.72002, unit=oz, isbalanced=null}, {addedtitle=Cyanuric Acid, addedvalue=10.0, keytitle=Increase Cyanuric Acid, key=p11, recvalue=11.7, unit=oz, isbalanced=null}]
如果我要在雅典娜的每一列中使用此嵌套结构的所有累加值,如何查询此列
作为输出,我应该在每一列中获得推荐值:
recommendation0 recommendation1 recommendation2 recommendation3
0.8999999999999999 18.218999999999998 33.6 88.72002
答案 0 :(得分:0)
假设数组中始终有四个元素,并且它们始终处于正确的顺序,则可以像这样从数组中挑选元素:
SELECT
the_array_column[1].recvalue AS recommendation0,
the_array_column[2].recvalue AS recommendation1,
the_array_column[3].recvalue AS recommendation2,
the_array_column[4].recvalue AS recommendation3
FROM my_table
(您没有提供完整的架构,因此我临时使用了表和列的名称-还请注意数组索引从1开始)
但是,您的行示例包含五个元素,而输出示例包含四个元素,并且顺序也不匹配。如果以上方法不能解决您的问题,也许您可以澄清您的问题?