Snowflake cloud data platform Snowflake从包含嵌套字典列表的列中获取每个键/值
我有一个名为monthly_stats VARCHAR type的列,其中包含以下词典列表:Snowflake cloud data platform Snowflake从包含嵌套字典列表的列中获取每个键/值,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我有一个名为monthly_stats VARCHAR type的列,其中包含以下词典列表: [{"id": 123, "quantity_booked": "12", "budget_booked": "112", "budget_booked_loc": "36.428571"}, {"id": 128811
[{"id": 123, "quantity_booked": "12", "budget_booked": "112", "budget_booked_loc": "36.428571"},
{"id": 1288119, "quantity_booked": "1703.3", "budget_booked": "58.694684",
"budget_booked_loc": "43.434066"}, {"id": 233, "quantity_booked": "1648.35",
"budget_booked": "56.801307", "budget_booked_loc": "42.032967"}]
我尝试了以下查询:
with org_table as (
select
parse_json(monthly_stats) as m
from my_table
)
select
m[0]:id::integer as monthly_budgets_id,
from org_table);
但这仅选择字典列表中的第一个id。如何获取每个字典中的每个id?请阅读以下文章,这可能会有所帮助:
您可以使用“展平”在数组上进行迭代: 以我的桌子为例 选择 “[{id:123,登记数量:12,登记预算:112,登记预算:36.428571}, {id:1288119,预订数量:1703.3,预订预算:58.694684, 预算登记地址:43.434066,{id:233,登记数量:1648.35, 预算记录:56.801307,预算记录:42.032967 ,org_表为 选择parse_jsonmonthly_stats作为m 从我的桌子上 选择x.value:id,x.value:budget\U booked 从org_表,TableFlattm x;
您可以使用“横向展平”进行如下尝试:
这是可行的,但当我运行它时,它给了我重复的值18:从我的_new_表中选择DISTINCT id,count*;其中id='296467'由1分组;
set teststring = '[{"id": 123, "quantity_booked": "12", "budget_booked": "112", "budget_booked_loc": "36.428571"},
{"id": 1288119, "quantity_booked": "1703.3", "budget_booked": "58.694684", "budget_booked_loc": "43.434066"}]';
with org_table as (
select
parse_json($teststring) as m
)
select
flattened.value:id as id
from org_table,
lateral flatten( input => m ) as flattened;