簡體   English   中英

雪花 SQL 中的 JSON 解析

[英]JSON Parse in Snowflake SQL

我正在嘗試使用雪花中的 SQL 將原始 json 轉換為以下所需的結果。 我怎樣才能做到這一點?

我試過 parse_json(newFutureAllocations[0]:fundId) 但這只會帶回第一個 fundId 元素。

原始“newFutureAllocations”:[{“fundId”:1,“percentAllocation”:2500},{“fundId”:5,“percentAllocation”:7500}]

所需的“新未來分配”:{“1”:2500,“5”:7500}

您需要使用flatten將數組元素轉換為行,然后使用object_agg()將它們再次聚合,作為對象而不是數組。 確切的語法取決於您的查詢、數據等的其余部分,您還沒有提供足夠的詳細信息。

這里的挑戰是重新構造對象,我使用了字符串連接:

with data as (
select parse_json(
    '[ { "fundId": 1, "percentAllocation": 2500 }
    , { "fundId": 5, "percentAllocation": 7500 } ]') j
)

select parse_json('{'||
  listagg('"'||x.value:fundId ||'"'||':'|| x.value:percentAllocation, ',')
  ||'}')
from data, table(flatten(j)) x
group by seq

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM