如何在 BigQuery 中 UNNEST 时设置 row_number?

问题描述 投票:0回答:2

示例: 有一个“水果”列,其值为:“苹果、橙子”。

如何获得两列???

fruit  row_number
apple  1 
orange  2

我已经尝试过了 UNNEST(SPLIT(fruits)) 作为水果与 ROW_NUMBER() OVER(按水果分区)。 但有时它会给出结果:

fruit  row_number
apple  2
orange  1
google-bigquery row-number unnest
2个回答
1
投票

我找到了解决方案:

UNNEST(SPLIT(fruits)) 作为水果,以 OFFSET 作为偏移量


0
投票

谢谢德米特里,你的解决方案也对我有用,只是想补充一点,不要忘记按偏移量排序:

row_number() over (partition by column_1 order by offset) as Rank

来自 Google Cloud 文档的参考:https://cloud.google.com/bigquery/docs/arrays#flattening_arrays

© www.soinside.com 2019 - 2024. All rights reserved.