- 浏览: 92523 次
文章分类
最新评论
-
1648852702:
求密码
规则引擎应用实践 -
yishuixiaofeng:
求解压密码
终极期望之:Ivar Jacobson 的软件工程传世经典 -
flyqantas:
601235723 写道同求解压密码
请把您需要的章节告诉我 ...
终极期望之:Ivar Jacobson 的软件工程传世经典 -
601235723:
同求解压密码
终极期望之:Ivar Jacobson 的软件工程传世经典 -
flyqantas:
i4late 写道需要密码的,能否提供密码
请说明需要那个文件 ...
基于OOSE方法的第8个项目: 客户投诉地址分词研究,一种基于规则引擎的方法
最近基于postgresSQL的游标和临时表方案开发了一个数据完整率的核查工具。
5 SQL摘要
1、向result_table记录分vendor_name的记录总数
sql := 'insert into '||result_table||' (时间,vendor_name,记录总数)
select 时间,厂家名称,count(*) from '|| check_table || ' where 时间=' || '''' || time || '''' || ' group by 时间,厂家名称 ';
EXECUTE sql;
2、提取check_table表的所有字段名,存入tmp_check_col
sql := 'create temp table tmp_check_col as SELECT a.attname
FROM pg_class as c,pg_attribute as a
where c.relname = '''||check_table||''' and a.attrelid = c.oid and a.attnum>0
and a.attname not in ( ' ||''''||'时间'||''''||' ) ';
EXECUTE sql;
3、打开游标
open datcheck_C FOR
SELECT attname from tmp_check_col ;
4、读取游标,并循环逐个读出字段名
FETCH datcheck_C INTO colname ;
while (colname.attname is not null) loop
5、循环体内,计算为空记录数 [num] 除以 步骤1中的记录总,得到 某字段的缺失率,并更新到对应的单元格内
sql := 'update '||result_table||' b set '||colname.attname||'=(SELECT round(a.num::numeric/b.记录总数::numeric,4) FROM
(
select 时间,厂家名称,count(*) as num from '||check_table||' where '||colname.attname||' is not null and 时间 ='''||time||''' group by 时间, 厂家名称
) a
WHERE a.时间=b.时间 and a.厂家名称=b.vendor_name) where 时间='''||time||'''';
EXECUTE sql;
sql := 'update '||result_table||' set '||colname.attname||' =0 where 时间='''||time||''' and '||colname.attname||' is null';
EXECUTE sql;
FETCH datcheck_C INTO colname;
END loop;
1、提取check_table表的所有字段名,存入tmp_check_col
sql := 'create temp table tmp_check_col as SELECT a.attname
FROM pg_class as c,pg_attribute as a
where c.relname = '''||check_table||''' and a.attrelid = c.oid and a.attnum>0
and a.attname not in ( ''时间'' ) ';
EXECUTE sql;
2、打开游标
open datcheck_C FOR
SELECT attname from tmp_check_col
3、读取游标,逐个读出字段名
FETCH datcheck_C INTO colname ;
while (colname.attname is not null) loop
4、循环体内,向result_table插入某字段为空的记录
sql :='insert into '||result_table||' select * from '||check_table||' where '||colname.attname||' is null and 时间 ='''||time||'''';
EXECUTE sql;
5、循环体内,向check_table删除某字段为空的记录
sql :='delete from '||check_table||' b where '||colname.attname||' is null and 时间 ='''||time||'''';
EXECUTE sql;
FETCH datcheck_C INTO colname;
END loop;
CLOSE datcheck_C;
5 SQL摘要
1、向result_table记录分vendor_name的记录总数
sql := 'insert into '||result_table||' (时间,vendor_name,记录总数)
select 时间,厂家名称,count(*) from '|| check_table || ' where 时间=' || '''' || time || '''' || ' group by 时间,厂家名称 ';
EXECUTE sql;
2、提取check_table表的所有字段名,存入tmp_check_col
sql := 'create temp table tmp_check_col as SELECT a.attname
FROM pg_class as c,pg_attribute as a
where c.relname = '''||check_table||''' and a.attrelid = c.oid and a.attnum>0
and a.attname not in ( ' ||''''||'时间'||''''||' ) ';
EXECUTE sql;
3、打开游标
open datcheck_C FOR
SELECT attname from tmp_check_col ;
4、读取游标,并循环逐个读出字段名
FETCH datcheck_C INTO colname ;
while (colname.attname is not null) loop
5、循环体内,计算为空记录数 [num] 除以 步骤1中的记录总,得到 某字段的缺失率,并更新到对应的单元格内
sql := 'update '||result_table||' b set '||colname.attname||'=(SELECT round(a.num::numeric/b.记录总数::numeric,4) FROM
(
select 时间,厂家名称,count(*) as num from '||check_table||' where '||colname.attname||' is not null and 时间 ='''||time||''' group by 时间, 厂家名称
) a
WHERE a.时间=b.时间 and a.厂家名称=b.vendor_name) where 时间='''||time||'''';
EXECUTE sql;
sql := 'update '||result_table||' set '||colname.attname||' =0 where 时间='''||time||''' and '||colname.attname||' is null';
EXECUTE sql;
FETCH datcheck_C INTO colname;
END loop;
1、提取check_table表的所有字段名,存入tmp_check_col
sql := 'create temp table tmp_check_col as SELECT a.attname
FROM pg_class as c,pg_attribute as a
where c.relname = '''||check_table||''' and a.attrelid = c.oid and a.attnum>0
and a.attname not in ( ''时间'' ) ';
EXECUTE sql;
2、打开游标
open datcheck_C FOR
SELECT attname from tmp_check_col
3、读取游标,逐个读出字段名
FETCH datcheck_C INTO colname ;
while (colname.attname is not null) loop
4、循环体内,向result_table插入某字段为空的记录
sql :='insert into '||result_table||' select * from '||check_table||' where '||colname.attname||' is null and 时间 ='''||time||'''';
EXECUTE sql;
5、循环体内,向check_table删除某字段为空的记录
sql :='delete from '||check_table||' b where '||colname.attname||' is null and 时间 ='''||time||'''';
EXECUTE sql;
FETCH datcheck_C INTO colname;
END loop;
CLOSE datcheck_C;
- 面向对象的软件工程-20141029.rar (4.9 MB)
- 下载次数: 0
- 基于postgresSQL的张表核查设计文档1025.rar (922.8 KB)
- 下载次数: 0
发表评论
-
The application of RAY tracing
2016-05-03 14:48 4191, the application of RAY traci ... -
The function of " distinct on"
2016-03-21 09:28 498A B C D 1 1 2 3 1 1 2 4 1 1 2 ... -
how to locate a point into a raster via maths method
2015-12-15 16:14 568Hi pierre: I have not solv ... -
20151212 iou小组第十二次活动材料
2015-12-15 09:02 612一、 设计文档 1、 基于栅格聚类的弱覆盖规划方法分析 2 ... -
如何计算两个多边形的重叠·区域
2015-12-01 16:36 2970查看PDF手册有方法如下: 8.10.13 ST_Inters ... -
基于QGIS的第三个成功项目:宽带用户接入方案
2015-09-07 14:26 7061、湖北省行政地图数字化 2、 湖北乡镇图层的额 ... -
图论中间件技术学习:raster
2015-06-02 19:39 463最近开始研究spatial 中的raster技术 -
postgres数据库优化(处理大表)http://lshh83.iteye.com/blog/340322
2015-04-22 14:24 609您好!您这个问题 ... -
如何在P-SQL中添加vornoni多边形
2015-03-16 09:33 744一个 postgres数据库的函数。 然后这个函数会用到PH ... -
基于postGIS的第二个成功应用
2015-03-10 14:25 10201)select c."簇编号", c.c ... -
如何在Postgresql中实现分片技术
2015-02-09 15:25 813您好!我用一个简单的例子说明pg的分区实现方式, ... -
基于KETTLE的第一个项目:网优大数据中心
2015-02-06 10:47 1505一个基于KETTLE 和postgresql 的项目 问题 ... -
postgres-SQL学习笔记:如何将DAT文件传输到PG中
2014-12-03 11:38 1441今天成功实现了将DAT文件拷贝到空间数据库中; http: ... -
postgres SQL学习笔记-如何进行权限管理
2014-11-21 10:30 151709:58:26 create user pguser wit ... -
基于postgresql的自动报表生成工具---一种基于OOSE的方法
2014-11-06 09:53 6601)SQL 性能提升 select c.scan_star ... -
基于OOSE方法的第12个项目:LTE射频优化平台
2014-10-23 16:26 7241) 提取十堰数据 2) 整理汇报材料 3)参考资料 4 ... -
Web_GIS数据地图下载方案
2014-10-22 08:42 2706可可西 http://www.cnblogs.com/keke ... -
项目管理的培训PMP
2014-10-16 08:54 02014年10月23号完成的PMP培训 1)如何高效的管理会 ... -
基于OOSE方法的第11个工具—— 基于空间数据库的基站优化工具
2014-09-19 11:53 7961、 Neighbor cell check 注:如 ... -
基于OOSE方法的第9个工具:LTE数据质量核查工具
2014-09-03 16:59 513用户名 密码都是root 遗传算法说明16:30:05 ...
相关推荐
flink cdc postgres 数据同步 jar包,2021年最新版
flink-sql-connector-postgres-cdc 2.5-SNAPSHOT
postgressql-ver-11-win64
16新特性: 1.权限管理 2.逻辑复制增强功能 3.性能提升:并行查询方面的性能提升,比如允许FULL和RIGHT JION在并行模式下执行,支持SIMD 4.全面的监控功能
PostgreSQL是一种开源的对象关系型数据库系统,以其强大的功能和高度的可扩展性而受到广泛欢迎,特别是在大数据和复杂数据处理场景下。 使用`postgres.client`库,开发人员可以轻松地创建数据库连接、执行查询并...
flink-connector-postgres-cdc-1.4.0.jar
sqoop连接Postgres SQL 的驱动包postgresql-9.3-1102-jdbc41.jar。 利用sqoop导出PostgresSQL的数据时所需的驱动包,只需要将该包放到hive或sqoop的lib目录下即可。
标题中的“PyPI 官网下载 | django-postgres-delete-cascade-2.0a1.tar.gz”表明这是一个从Python Package Index(PyPI)官方源获取的软件包,名为“django-postgres-delete-cascade”。这个软件包的版本是2.0a1,...
"postgres-15.2-1-windows-x64" 是 PostgreSQL 的一个针对 Windows 操作系统的64位版本,其版本号为15.2。这个压缩包包含了在 Windows 平台上安装和运行 PostgreSQL 所需的所有组件。 1. **PostgreSQL 版本**:15.2...
基于 ,通过定期的循环备份将PostgresSQL备份到本地文件系统。 通过在POSTGRES_DB设置数据库名称(用逗号或空格分隔),从同一主机备份多个数据库。 支持以下Docker架构: linux/amd64 , linux/arm64 , linux/...
PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、安全性及支持复杂查询和高级数据类型而著称。在Django框架中,PostgreSQL是推荐的数据库之一,因为它与Django的集成非常紧密,提供了丰富的SQL...
PostgresSQL是一个很优秀的开源数据库,并提供了针对空间数据的存扩展;这个PPT介绍了PostgresSQL数据库的基本情况
`django_postgres_copy`可能提供了一种快速、批量复制数据到或从PostgreSQL的方法,可能是通过利用数据库的COPY命令,这通常比使用SQL INSERT语句要快得多。 总的来说,`django_postgres_copy-0.2.0-py2.py3-none-...
《Python库dagster_postgres-0.8.3rc0-py3-none-any.whl详解》 在Python的开发世界中,丰富的库是其强大功能的重要支撑。本篇文章将深入探讨名为“dagster_postgres”的Python库,以及如何利用其0.8.3rc0版本的whl...
资源来自pypi官网。 资源全名:postgres.client-0.3.2-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:postgres-audit-triggers-0.1.13.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
PostgreSQL是一种流行的开源关系型数据库管理系统,其语法和数据结构具有严格的规范,包括对列名的限制。 描述中提到,这是一个可以解压后使用的Python库,资源文件名为`is_valid_postgres_column_name-0.0.1-py3-...
资源分类:Python库 所属语言:Python 资源全名:postgres_kernel-0.2.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
标题中的"postgres-REL-15-3.tar.gz"是一个基于PostgreSQL数据库系统的软件发行版本。PostgreSQL,通常简称为"Postgres",是一个开源的对象关系数据库管理系统(ORDBMS),以其强大的功能、稳定性以及高度的灵活性而...