如何在 bigquery 的重复结构中查找最后一项
How to find last item in a repeated structure in bigquery
我有一个嵌套的重复结构,重复结构的长度是可变的。例如,它可能是一个具有重复结构的人对象,该结构包含该人居住过的城市。我想找到该列表中的最后一项,以查找当前居住的城市人。有没有简单的方法可以做到为此,我尝试查看 jsonpath 函数,但我不确定如何将它与 "within" 一起使用。有什么帮助吗?
SELECT
FIRST(cell.value) within record ,
LAST(cell.value) within record
FROM [publicdata:samples.trigrams]
where ngram = "! ! That"
2) 或者如果你想要更高级的东西,你可以使用 POSITION
POSITION(field)
- Returns 字段在一组重复字段中的基于一个的连续位置。
您可以查看三元组中的示例(单击“详细信息”以查看展开的架构)
https://bigquery.cloud.google.com/table/publicdata:samples.trigrams?pli=1
当您 运行 位置时,您将获得该字段的顺序。
SELECT
ngram,
cell.value,
position(cell.volume_count) as pos,
FROM [publicdata:samples.trigrams]
where ngram = "! ! That"
既然你有位置,你可以查询最后一个。
我有一个嵌套的重复结构,重复结构的长度是可变的。例如,它可能是一个具有重复结构的人对象,该结构包含该人居住过的城市。我想找到该列表中的最后一项,以查找当前居住的城市人。有没有简单的方法可以做到为此,我尝试查看 jsonpath 函数,但我不确定如何将它与 "within" 一起使用。有什么帮助吗?
SELECT
FIRST(cell.value) within record ,
LAST(cell.value) within record
FROM [publicdata:samples.trigrams]
where ngram = "! ! That"
2) 或者如果你想要更高级的东西,你可以使用 POSITION
POSITION(field)
- Returns 字段在一组重复字段中的基于一个的连续位置。
您可以查看三元组中的示例(单击“详细信息”以查看展开的架构) https://bigquery.cloud.google.com/table/publicdata:samples.trigrams?pli=1
当您 运行 位置时,您将获得该字段的顺序。
SELECT
ngram,
cell.value,
position(cell.volume_count) as pos,
FROM [publicdata:samples.trigrams]
where ngram = "! ! That"
既然你有位置,你可以查询最后一个。