避免除以零:WITH 子句中的 1 / 0 错误

J. *_*Ayo 1 sql google-bigquery

我在 WITH 子句中使用以下内容在 Big Query 中创建 FULL JOIN:

    WITH
    a AS(
        SELECT
        date AS Date, 
        SUM(Val1 / (1 - (Val2 + Val3))) AS Calc1,
        FROM `project.dataset.table1`
        GROUP BY Date
        ),
    b as (SELECT
        date AS Date, 
        FROM `project.dataset.table2`
        GROUP BY Date
        )

SELECT a.Date, SUM(Calc1)

FULL JOIN a on b.Date = a.Date

GROUP BY b.Date
Run Code Online (Sandbox Code Playgroud)

Calc1 正在创建一个“除以零:1 / 0”错误,我似乎无法弄清楚如何重组它,因此它不会发生。该查询在 WITH 子句之外运行良好,因为我可以简单地不包含 GROUP BY,因此不需要 SUM Calc1?

Mik*_*ant 5

下面是 BigQuery 标准 SQL

SUM(SAFE_DIVIDE(Val1, 1 - (Val2 + Val3))) AS Calc1   
Run Code Online (Sandbox Code Playgroud)

代替

SUM(Val1 / (1 - (Val2 + Val3))) AS Calc1  
Run Code Online (Sandbox Code Playgroud)