当前位置: 首页 > 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值和空值,需要额外的业务逻辑处理。

相关文章:

  • 性能优化笔记
  • 【生活】程序员防猝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正向代理的实现原理
  • 汕头市营商环境建设监督局网站/企业网站怎么推广
  • 微信网站建设热线/互联网销售平台有哪些
  • 沈阳网站建设多少钱/外包平台
  • 手机域名注册网站/百度seo找哪里
  • 网络优化工程师是做什么的/长沙关键词优化新报价
  • 太原做学校网站的公司/外贸网络推广经验