clickhouse:如何避免 DB::Exception:除以零
Posted
技术标签:
【中文标题】clickhouse:如何避免 DB::Exception:除以零【英文标题】:clickhouse:how to avoid DB::Exception: Division by zero in 【发布时间】:2020-11-16 03:09:11 【问题描述】:当我使用 divide(Decimal v1,Decimal v2) 并且 v2 来自子查询时,如何避免 DB::Exception: 在 clickhouse 中除以零。 我尝试使用 case when v2 = 0 then 0 else 除 end 但没有用!
【问题讨论】:
能否提供您的 sql-query 和 ClickHouse 版本? 【参考方案1】:条件运算符(if/case/ternary)总是计算所有分支
https://github.com/ClickHouse/ClickHouse/issues/4411#issuecomment-464329721
https://github.com/ClickHouse/ClickHouse/issues/1562
【讨论】:
【参考方案2】:我使用standard CASE WHEN避免了被零除:
CASE WHEN Quantity > 0 THEN Quantity ELSE 1 END
或 ClickHouse 函数:
multiIf(Quantity > 0, Quantity, 1)
【讨论】:
以上是关于clickhouse:如何避免 DB::Exception:除以零的主要内容,如果未能解决你的问题,请参考以下文章
ClickHouse-尚硅谷(11. 高级-查询优化)学习笔记
ClickHouse-尚硅谷(11. 高级-查询优化)学习笔记