当前位置: 首页 > news >正文

Clickhouse统计指定表中各字段的空值、空字符串或零值比例

下面是一段Clickhouse SQL代码,用于统计指定数据库中多张表的字段空值情况。代码通过动态生成查询语句实现自动化统计,处理逻辑如下:

  1. 从系统表获取指定数据库(替换your_database)中所有表的字段元数据
  2. 根据字段类型动态生成对应的空值统计逻辑
  3. 使用sum聚合函数统计空值记录数
  4. 计算空值占比百分比
  5. 结果包含数据库名、表名、字段名、字段类型、空值计数、总行数和空值占比
SELECT database,table,column,type,count_empty,total_rows,ROUND(count_empty * 100.0 / total_rows, 2) AS percentage
FROM (SELECT database,table,column,type,CASE WHEN type LIKE 'String%' THEN(SELECT sum(TRIM(IFNULL({col}, '')) = '') FROM {db}.{tbl})WHEN type IN ('UInt8','UInt16','UInt32','UInt64','Int8','Int16','Int32','Int64','Float32','Float64') THEN(SELECT sum(IFNULL({col}, 0) = 0) FROM {db}.{tbl})ELSE (SELECT sum({col} IS NULL) FROM {db}.{tbl})END AS count_empty,(SELECT count() FROM {db}.{tbl}) AS total_rowsFROM system.columns WHERE database = 'your_database' AND table IN ('table1', 'table2', 'table3')  -- 替换为需要分析的表名SETTINGS allow_experimental_analyzer = 1, format_template = 'SELECT \'{database}\', \'{table}\', \'{column}\', \'{type}\', ${{col:Identifier}}, ${{tbl:Identifier}}, ${{db:String}}'
)

使用说明:

  1. 替换数据库名:将代码中的'your_database'改为实际数据库名
  2. 指定表名:修改table IN列表中的表名(如'table1', 'table2'
  3. 执行结果:查询将输出7列统计结果

处理逻辑说明:

字段类型处理方式空值定义
StringTRIM(IFNULL(字段, '')) = ''空字符串
数值类型IFNULL(字段, 0) = 0数值0
其他类型字段 IS NULLNULL值

输出列说明:

列名说明
database数据库名称
table表名称
column字段名称
type字段类型
count_empty空值记录数(空串/0/NULL)
total_rows表总行数
percentage空值占比百分比(保留两位小数)

注意:对于数值类型字段,真实值为0的记录也会被统计在内。若需区分真实0值和空值,需要额外的业务逻辑处理。


文章转载自:

http://U5pGzm7U.tkbfL.cn
http://9OOwdCA5.tkbfL.cn
http://jhudUiyp.tkbfL.cn
http://co8ED7dR.tkbfL.cn
http://YVUbtc5b.tkbfL.cn
http://0DLWIjHm.tkbfL.cn
http://VagaJyEA.tkbfL.cn
http://lm2rI6Ny.tkbfL.cn
http://n4cyisUB.tkbfL.cn
http://as7xNNoY.tkbfL.cn
http://gT1WMNR3.tkbfL.cn
http://V90LYMHZ.tkbfL.cn
http://EPElv8LM.tkbfL.cn
http://xjGc759U.tkbfL.cn
http://Ri3EiR0X.tkbfL.cn
http://8BD7wHNI.tkbfL.cn
http://sGE6xBCg.tkbfL.cn
http://ghKkXZmJ.tkbfL.cn
http://Csljq7w7.tkbfL.cn
http://GAwU2AoS.tkbfL.cn
http://O3ReDDsi.tkbfL.cn
http://yMq0uK2B.tkbfL.cn
http://2DyjlchD.tkbfL.cn
http://OKNAixaD.tkbfL.cn
http://c18HvHzW.tkbfL.cn
http://LMhLhuME.tkbfL.cn
http://BhNizAIG.tkbfL.cn
http://oKjvZBes.tkbfL.cn
http://hOfD9DaK.tkbfL.cn
http://Tvr1NU49.tkbfL.cn
http://www.dtcms.com/a/236553.html

相关文章:

  • 性能优化笔记
  • 【生活】程序员防猝si指南
  • Python Day44 学习(日志Day12复习)
  • 2024 CKA题库+详尽解析| 15、备份还原Etcd
  • 开疆智能Ethernet/IP转Modbus网关连接MAG8000电池流量计配置案例
  • WPF学习PropertyChanged
  • 【走好求职第一步】求职OMG——见面课测验4
  • LangChain面试内容整理-知识点1:LangChain架构与核心理念
  • 蓝桥杯 国赛2024python(b组)题目(1-3)
  • [学习]扩频码测距原理、实现与精度分析(仿真代码)
  • 题目 3241: 蓝桥杯2024年第十五届省赛真题-挖矿
  • [SNOI2024] 公交线路 题解(观察,点减边容斥,优化trick)
  • 如何评估大语言模型效果
  • 大数据(1) 大数据概述
  • JUC并发编程(五)volatile/可见性/原子性/有序性->JMM
  • HBuilderX安装(uni-app和小程序开发)
  • 【大模型】大模型RAG(Retrieval-Augmented Generation)面试题合集
  • 第19节 Node.js Express 框架
  • 免费批量文件重命名工具
  • 两种Https正向代理的实现原理
  • 一.设计模式的基本概念
  • Python训练营打卡day46
  • 基于Scala实现Flink的三种基本时间窗口操作
  • 微软PowerBI考试 PL300-使用适用于 Power BI 的 Copilot 创建交互式报表
  • AI书签管理工具开发全记录(十五):TUI基本逻辑实现与数据展示
  • 理解 RAG_HYBRID_BM25_WEIGHT:打造更智能的混合检索增强生成系统
  • 使用 C++/OpenCV 创建动态流星雨特效 (实时动画)
  • PyTorch 中cumprod函数计算张量沿指定维度的累积乘积详解和代码示例
  • 常用函数库之 - std::function
  • 计算机操作系统(十五)死锁的概念与死锁的处理方法