在BigQuery中,SUM CASE END OVER PARTITION错误通常发生在使用SUM函数和CASE语句时,同时也使用了OVER PARTITION BY子句。解决该错误的方法是重新编写查询,以明确指定SUM函数的范围。
以下是一个示例查询,其中包含了SUM CASE END OVER PARTITION错误:
SELECT
column1,
column2,
SUM(CASE WHEN condition THEN value ELSE 0 END) OVER (PARTITION BY column3) AS sum_value
FROM
table
为了解决该错误,您需要将SUM函数与CASE语句的组合移动到子查询中,并在外部查询中使用SUM函数。以下是修改后的查询示例:
SELECT
column1,
column2,
SUM(sum_value) OVER (PARTITION BY column3) AS total_sum
FROM (
SELECT
column1,
column2,
CASE WHEN condition THEN value ELSE 0 END AS sum_value
FROM
table
)
在修改后的查询中,我们首先将SUM CASE END语句移动到了子查询中,并将其命名为sum_value。然后,我们在外部查询中使用SUM函数,并使用OVER PARTITION BY子句指定了分区列。
通过将SUM CASE END语句移动到子查询中并重新编写查询,我们可以避免出现“BigQuery语法错误:带有SUM CASE END OVER PARTITION。”错误。