我用这段代码得到0除错:
CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1 * INT2 / DENOMINATOR)
ELSE 0
END AS RATIO
Run Code Online (Sandbox Code Playgroud)
但是,当我更改为以下代码时,它工作正常.
CASE
WHEN DENOMINATOR >= 0
THEN SUM(INT1) * INT2 / DENOMINATOR
ELSE 0
END AS RATIO
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解原因,以便将来可以避免这种情况吗?BTW,第一个样本在Vertica中运行.我实现了总结需要求和的东西而不是在求和之前进行计算是一种更好的编程实践.不过仍然很好奇.