示例: 有一个“水果”列,其值为:“苹果、橙子”。
如何获得两列???
fruit row_number
apple 1
orange 2
我已经尝试过了 UNNEST(SPLIT(fruits)) 作为水果与 ROW_NUMBER() OVER(按水果分区)。 但有时它会给出结果:
fruit row_number
apple 2
orange 1
我找到了解决方案:
UNNEST(SPLIT(fruits)) 作为水果,以 OFFSET 作为偏移量
谢谢德米特里,你的解决方案也对我有用,只是想补充一点,不要忘记按偏移量排序:
row_number() over (partition by column_1 order by offset) as Rank
来自 Google Cloud 文档的参考:https://cloud.google.com/bigquery/docs/arrays#flattening_arrays