簡體   English   中英

如何使用 SQL 在 Snowflake 中解析出 JSON 變量

[英]How to parse out a JSON variable in Snowflake using SQL

所以我有一個數據集,它有一列包含這樣的數據:

ID     values
0001   [
       {
        prices: {
          ia: '20K+',
          ln: '3K-10K'
        },
        formats: [
          'n',
          'ia'
        ],
        id: 'c8f4f498-1cfeaf1-455a-a5ac-310191wefw959583',
        image_url: 'file.jpg',
        slug: 'test1'
      },
       {
        prices: {
          ia: '20K+',
          ln: '3K-10K'
        },
        formats: [
          'n',
          'ia'
        ],
        id: 'c8f4f4wfwe98-1ca1-455a-a5ac-3101919wfewf59583',
        image_url: 'file.jpg',
        slug: 'test3'
      }
    ]
0002   [
       {
        prices: {
          ia: '20K+',
          ln: '3K-10K'
        },
        formats: [
          'n',
          'ia'
        ],
        id: 'c8f4feeee498-1ca1-455a-a5ac-3101919fwewf59583',
        image_url: 'file.jpg',
        slug: 'test2'
      }

我在這個變量中關心的是slug 但是不同的 ID 有不同數量的 slug。 我怎么能從這些數據中得到一個新的 df 來向我展示每個 slug 以及計數。

所以我想要的結果:

  ID              slugs  slug_count
0001  ['test1','test3']           2
0002          ['test2']           1

展平和分組:

with data as (
select $1 id, parse_json($2) j
from values(1, '[{"slug":"a"}]'), (2, '[{"slug":"a1"},{"slug":"a2"}]')
)

select id, array_agg(x.value:slug) slugs, count(*) slug_count
from data, table(flatten(j)) x
group by id

在此處輸入圖像描述

暫無
暫無

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

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