[英]Snowflake - flatten multiple nested array values from json variant column
[英]Summing values from a JSON array in Snowflake
我有一個包含以下類型的JSON數組的源數據:
[
[
"source 1",
250
],
[
"other source",
58
],
[
"more stuff",
42
],
...
]
可以有1..N對這樣的字符串和值。 如何將這個JSON中的所有值加在一起?
您可以使用FLATTEN ,它將為輸入數組的每個元素產生一行。 然后,您可以直接訪問該元素中的數字。
假設您有此輸入表:
create or replace table input as
select parse_json($$
[
[
"source 1",
250
],
[
"other source",
58
],
[
"more stuff",
42
]
]
$$) as json;
FLATTEN將執行以下操作:
select index, value from input, table(flatten(json));
-------+-------------------+
INDEX | VALUE |
-------+-------------------+
0 | [ |
| "source 1", |
| 250 |
| ] |
1 | [ |
| "other source", |
| 58 |
| ] |
2 | [ |
| "more stuff", |
| 42 |
| ] |
-------+-------------------+
因此,您只需使用VALUE[1]
即可訪問所需內容
select sum(value[1]) from input, table(flatten(json));
---------------+
SUM(VALUE[1]) |
---------------+
350 |
---------------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.