我在bigquery中有一个DAY分区表,我想要删除某些列值重复的行(我只想要最后一个这样的值,按时间戳列排序)。现在因为bigquery DML语言不支持分区表(并且有其他限制),我认为我需要做的是创建一个临时表,它是原始的过滤视图,删除原始然后执行临时表的副本为原始名称并删除临时表。我可以这样做:
SELECT * EXCEPT(row_number)
FROM (
SELECT
*,
ROW_NUMBER()
OVER (PARTITION BY partition_col order by time_col desc)
row_number
FROM my_partioned_table
)
WHERE row_number = 1
但是如何使用这种方法保留分区信息?
如果我复制一个完整的表,则会保留分配信息,但如果我想有效地创建一个也保留分区的表的过滤视图,我该怎么办?
答案 0 :(得分:1)
此时,如果您的更改跨多个分区,则需要分别为每个分区运行查询。