-
clickhouse填坑之除数为0完美解决
- 网站名称:clickhouse填坑之除数为0完美解决
- 网站分类:技术文章
- 收录时间:2025-08-18 04:51
- 网站地址:
“clickhouse填坑之除数为0完美解决” 网站介绍
最近在做数据汇聚功能需要计算数据访问成功率,原始的数据有bug,会在出现访问总次数为0的情况,导致我们汇聚数据异常从而汇聚数据无法入库。为了解决这个问题,首先想到的就是if函数,于是我们使用if函数进行处理
1、if函数处理:
select
if(sum(access)>0,toDecimal32(100*sum(service_success)/sum(access),2),0)
as business_visit_rate
from bigdata_analysis.ods_access
group by s_province_id, c_province_id
按照我们的理解sum(access)=0,那么应该不会执行toDecimal32(100*sum(service_success)/sum(access),2),0),而实际情况就是
它并没有跳过除数为0的表达式的执行
2、使用三元运算处理:
将上面的if函数更换为三元运算
sum(access)>0?toDecimal32(100 * sum(service_success)/sum(access),2) : 0
执行后报错同上,也是出现一样的错误
3、使用intDivOrZero函数
intDivOrZero(100 * sum(service_success), sum(access))
可以解决除数为0,但是只能说整数,不能保留2位小数,又不满足条件
4、使用toFloat64进行处理
toFloat64(100 * sum(service_success))/toFloat64(sum(access)),
结果为NaN,于是放弃该方案
5、最终解决方案
if(sum(access)=0,0,round(100*sum(service_success)/sum(access),2))
as busines_visit_rate
注意使用条件的顺序,为0时必须在前面,这样后面的表达式就不会执行, 就不会报错
更多相关网站
- 数据体系建设-数据血缘(1)(数据体系规划)
- Spark+ClickHouse实战企业级数据仓库:ClickHouse常用的数据格式
- MySQL数据一键同步至ClickHouse数据库
- 大数据ClickHouse进阶(一):ClickHouse使用场景和集群安装
- Node.js 连接 ClickHouse 并执行 SQL 的方式
- BI产品工具Tableau使用相关问题汇总
- ClickHouse学习笔记四ClickHouse基础语法
- 趣头条基于Flink+ClickHouse的实时数据分析平台
- 基于ClickHouse的用户行为大数据架构
- 那些年我们踩过的一些坑之 ClickHouse
- ClickHouse在自助行为分析场景的实践应用
- ClickHouse的应用场景 和使用约束
- ClickHouse学习笔记一ClickHouse入门
- 大数据ClickHouse(三):客户端命令行参数
- ClickHouse 可观测性最佳实践(clickhouse高可用)
- 大数据ClickHouse进阶(八):ClickHouse的with子句
- Clickhouse多磁盘存储,实现冷热数据分离
- 快速安装 ClickHouse(快速安装展会桁架出租)
- 最近发表
- 标签列表
-
- mydisktest_v298 (35)
- sql 日期比较 (33)
- document.appendchild (35)
- 头像打包下载 (35)
- acmecadconverter_8.52绿色版 (25)
- 梦幻诛仙表情包 (36)
- java面试宝典2019pdf (26)
- disk++ (30)
- 加密与解密第四版pdf (29)
- iteye (26)
- centos7.4下载 (32)
- intouch2014r2sp1永久授权 (33)
- jdk1.8.0_191下载 (27)
- axure9注册码 (30)
- virtualdrivemaster (26)
- 数据结构c语言版严蔚敏pdf (25)
- 兔兔工程量计算软件下载 (27)
- 代码整洁之道 pdf (26)
- ccproxy破解版 (31)
- aida64模板 (28)
- engine=innodb (33)
- shiro jwt (28)
- segoe ui是什么字体 (27)
- head first java电子版 (32)
- clickhouse中文文档 (28)