首页 > 解决方案 > BigQuery - 动态提取数组内的所有数组元素

问题描述

我已经发布了这个问题,但现在我试图用 BigQuery 来实现这一点。

我有如下 JSON 数据。

{
  "userid": null,
  "appnumber": "9",
  "trailid": "1547383536",
  "visit": [{
      "visitNumber": "1",
      "time": "0",
      "hour": "18",
      "minute": "15"
    },
    {
      "visitNumber": "2",
      "time": "2942",
      "hour": "18",
      "minute": "15"
    }
  ]
}

我想动态提取访问数组值。

如下所示:(管道分隔列)

userid,appnumber| trailid | 
visit.visitnumber | visit.time | visit.hour | visit.minute | 
visit.visitnumber | visit.time | visit.hour | visit.minute

如果您看到我在访问数组中有 2 个 json 元素。所以我想动态提取visitNumber、时间、小时、分钟。有时我可能在数组中有 3 或 5 个值,所以它应该自动提取所有 3 或 5 个 json(我的意思是动态的)。

有一种常用的方法来提取这个类似JsonExtractScalar(JsonExtract(visit,'$.[0].visitnumber')(这个语法可能是错误的,但我们会使用类似的语法。所以这里我手动使用[0]来提取数组中的第一个元素。

如果它有 10 多个元素,那么我应该使用[0]...[1]...[2]....[10]. 这件事我想解决,不知何故没有提及所有元素,它应该动态选择所有 10 个元素并提取它。

有人可以帮我提取查询吗?

标签: sqlarraysjsongoogle-bigqueryextract

解决方案


推荐阅读