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

时间:2015-02-17 08:29:20

标签: json google-bigquery jsonpath nested-repeater

我有一个嵌套的重复结构,重复的结构是可变长度的。例如,它可能是一个具有重复结构的人物对象,其中包含该人居住的城市。我想找到该列表中的最后一个项目,以便找到当前城市居住者。是否有一种简单的方法为了做到这一点,我试着查看jsonpath功能,但我不确定如何在"内使用#34;。有什么帮助吗?

1 个答案:

答案 0 :(得分: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) - 返回一组重复字段中基于一个字段的顺序位置。

您可以检查三元组中的样本(单击“详细信息”以查看未平缓的模式) 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

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