将ROW_NUMBER() OVER()
与Big Query结合使用会出现问题。
一个问题是,当我使用ROW_NUMBER() OVER()
创建视图时,该视图可以完美运行,但是会在半天后(根据我的假设,由于缓存)而生成,命令已更改。
因为我创建了另一个实体表,但仍引用该视图。创建ROW_NUMBER() OVER() - UID
AS固定不变数字的最佳方法是什么?
我已经尝试过-OW_NUMBER() OVER(ORDER BY DATE)
,但它仍然更改。
PS 。我只需要一个UID,即为每个值分配的唯一编号与自动增量相同。
谢谢。
答案 0 :(得分:0)
我只需要一个UID,为每个值分配一个唯一的数字...
以下是用于BigQuery标准SQL
您可以尝试使用FARM_FINGERPRINT()函数-无论是单独使用还是如果OVER(ORDER BY ...)
的一部分都包含重复的整行
#standardSQL
SELECT *,
FARM_FINGERPRINT(TO_JSON_STRING(t)) uid,
ROW_NUMBER() OVER(ORDER BY FARM_FINGERPRINT(TO_JSON_STRING(t))) row_num
FROM `project.dataset.table` t