2

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

4

1 回答 1

7

1)您可以使用LASTWITHIN

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

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

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

您可以检查来自 trigrams 的样本(单击详细信息以查看未展平的架构) https://bigquery.cloud.google.com/table/publicdata:samples.trigrams?pli=1

在此处输入图像描述

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

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

在此处输入图像描述

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

于 2015-02-17T09:01:05.257 回答