在处理数据时,经常需要对现有数据集有一个高层次的理解。在这种情况下,数据概况分析工具就显得非常有用。本文介绍的脚本可以生成动态SQL语句,为字符数据提供平均/最小/最大长度的度量,或者为数值和日期数据提供值的度量,同时还能统计不同值的数量和空值的数量。通过简单地修改数据库架构选择的WHERE子句,就可以控制分析的架构/表名。
使用该脚本:
该脚本使用游标对INFORMATION_SCHEMA视图进行遍历,以构建并执行每个列的概况SELECT语句。SELECT语句的构建基于列的通用数据类型。每种数据类型都有预定义的字符串,其中包含“@@replace”这个占位符,使用REPLACE函数将其替换为正确的列名。
每次SELECT执行的结果都存储在表变量中,以便最终展示。
以下是脚本的详细实现:
-- 省略了脚本的详细代码...
脚本使用游标遍历架构。可以通过修改WHERE子句来控制使用的表/视图。
通过处理数据库架构:
在数据库架构中处理时,脚本会根据数据类型生成不同的SQL语句。对于不支持的数据类型,脚本会生成空值。对于字符数据,脚本会计算平均长度、最小长度、最大长度、不同值的数量和空值的数量。对于数值数据,脚本会计算平均值、最小值、最大值、不同值的数量和空值的数量。对于日期数据,脚本会计算最小值、最大值、不同值的数量和空值的数量。对于其他数据类型,脚本会计算不同值的数量和空值的数量。
清理:
在脚本执行完毕后,需要关闭并释放游标。
展示结果:
最后,脚本会从结果表变量中选择数据,并按照表名和列名进行排序,以展示最终的分析结果。
重置:
脚本执行完毕后,会关闭NOCOUNT设置并打开ANSI_WARNINGS设置。
额外说明:
使用这个报告的目的是提供一个数据的大局观,通过将结果粘贴到Excel中。这就是为什么会共享基于数据类型的平均/最小/最大列的长度或值,以最大化电子表格中的房地产。这也是为什么在列名中包含空格,以允许在Excel列标题中进行单词换行。
使用了ISO标准的INFORMATION_SCHEMA视图,而不是其他系统架构表,以便于将脚本转换为与其他支持ISO兼容视图的数据库一起使用。