json - 如何在 bigquery 的重复结构中查找最后一项

标签 json google-bigquery jsonpath nested-repeater

我有一个嵌套的重复结构,重复结构的长度是可变的。例如,它可能是一个具有重复结构的人对象,该结构包含该人居住过的城市。我想找到该列表中的最后一项,以查找当前居住的城市人。有没有简单的方法可以做到为此,我尝试查看 jsonpath 函数,但我不确定如何将它与“内部”一起使用。有什么帮助吗?

最佳答案

1) 您可以使用 LASTWITHIN

SELECT  
  FIRST(cell.value) within record ,
  LAST(cell.value) within record 
FROM [publicdata:samples.trigrams] 
where ngram = "! ! That"

2) 或者如果你想要更高级的东西,你可以使用 POSITION

POSITION(field) - 返回字段在一组重复字段中基于一个的顺序位置。

您可以检查三元组中的示例(单击“详细信息”以查看展开的架构) https://bigquery.cloud.google.com/table/publicdata:samples.trigrams?pli=1

enter image description here

当您运行 POSITION 时,您会得到该字段的顺序。

SELECT  
  ngram,
  cell.value,
  position(cell.volume_count) as pos,
FROM [publicdata:samples.trigrams] 
where ngram = "! ! That"

enter image description here

现在您已经有了位置,您可以查询最后一个。

关于json - 如何在 bigquery 的重复结构中查找最后一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28557636/

相关文章:

json - Postgres 11 Jsonpath 支持

JSON JQ 如果没有 else

Ruby:JSON.parse 返回未定义的方法 `bytesize'

json - 创建方案 .avsc Avro 的问题

google-bigquery - 如果后续语句返回零记录,如何在 BigQuery 中抛出错误?

javascript - 从数组 JSON 输入返回所有字段的 JSON 路径?

java - Jackson:如何反序列化我自己的类的实例字段

sql - BigQuery 的 StandardSQL NTH() 和 FIRST() 函数

google-analytics - 在自定义查询中查询数据时,格式化event_date和event_timestamp大查询

jsonpath - 访问 JSON::Path numbers only key