Google bigquery 大查询错误:在[5:70]不允许按FLOAT64类型的表达式进行分区
我面临一个问题。基本上,我想删除所有重复的行,我在几个表中成功地做到了这一点。但有一个表包含FLOAT列,即REVENUE。它显示此错误: 错误:此时不允许按FLOAT64类型的表达式进行分区 [5:70] 这是我的密码:Google bigquery 大查询错误:在[5:70]不允许按FLOAT64类型的表达式进行分区,google-bigquery,Google Bigquery,我面临一个问题。基本上,我想删除所有重复的行,我在几个表中成功地做到了这一点。但有一个表包含FLOAT列,即REVENUE。它显示此错误: 错误:此时不允许按FLOAT64类型的表达式进行分区 [5:70] 这是我的密码: 如果100%确定分区列中确实需要REVENUE,则需要将其转换为字符串 通常这是一个错误,仅通过CMS\u ID进行分区应该可以 演员阵容(收入为字符串) CMS\u ID每月重复一次,因此我必须使用分区中的其他列。旁注:将收入存储为数值类型可能是一个更好的主意,因为您不会像
如果100%确定分区列中确实需要
REVENUE
,则需要将其转换为字符串
通常这是一个错误,仅通过CMS\u ID
进行分区应该可以
演员阵容(收入为字符串)
CMS\u ID每月重复一次,因此我必须使用分区中的其他列。旁注:将收入存储为
数值类型可能是一个更好的主意,因为您不会像使用FLOAT64
那样出现精度损失问题。您还可以在分区内使用数值。
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