我面临一个问题。基本上,我想删除所有重复的行,我在几个表中成功地做到了。但是有一个表包含FLOAT列,即REVENUE。它显示此错误:
错误:不允许按FLOAT64类型的表达式进行分区 [5:70] 这是我的代码:
CREATE OR REPLACE TABLE `pops-204909.monthly_reports.top_20_countries_revenue` AS
SELECT * EXCEPT(rn)
FROM
(
SELECT *, ROW_NUMBER() OVER(PARTITION BY CMS_ID, DATE,COUNTRY_NAME,REVENUE ORDER BY DATE ) rn
FROM `pops-204909.monthly_reports.top_20_countries_revenue`
)
WHERE rn = 1
答案 0 :(得分:2)
如果您100%确定在分区列中确实需要REVENUE
,则需要转换为字符串。
通常这是一个错误,仅用CMS_ID
进行分区应该可以。
CAST(收入为STRING)