在BigQuery中执行加减运算时遭遇语法错误求助
问题解决:CTE语法错误修复
你的CTE定义违反了SQL语法规范,CTE内部必须是一个有效的SELECT查询语句,而你直接在括号内编写算术运算表达式,导致解析器无法识别,抛出语法错误。
下面是两种正确的写法,都能实现你需要的差额计算:
写法一:嵌套子查询直接计算
WITH CALCULO AS ( SELECT (SELECT SUM(UTILITY) FROM _coste_rv) - ((SELECT SUM(UTILITY) FROM _coste_rv) + (SELECT SUM(UTILITY) FROM _tmp_coste)) AS DIFFERENCE ) -- 调用CTE获取结果 SELECT DIFFERENCE FROM CALCULO;
写法二:拆分聚合逻辑(可读性更好)
WITH COSTE_RV_TOTAL AS ( SELECT SUM(UTILITY) AS total_rv FROM _coste_rv ), TMP_COSTE_TOTAL AS ( SELECT SUM(UTILITY) AS total_tmp FROM _tmp_coste ) SELECT crv.total_rv - (crv.total_rv + tct.total_tmp) AS DIFFERENCE FROM COSTE_RV_TOTAL crv, TMP_COSTE_TOTAL tct;
两种写法的核心都是确保CTE返回一个有效的结果集,再在这个基础上完成算术运算。
内容的提问来源于stack exchange,提问作者Ravenz Boomer
相关产品推荐
相关产品推荐

