小编GT.*_*GT.的帖子

查找跨表几乎相同行的更改列

我在 64 位 Windows 7 上运行 PostgreSQL 9.3.5。

我的数据每季度到达,在多个表 ( table1, ..., tableN) 中,这些表在周期内通过基于关键标识符的跨表约束进行链接。在其他列中,每个表都具有随时间持续存在的标识符pfi-持久特征标识符ufi-通用特征标识符

pfi每个表都是唯一的(非常罕见的是table1.pfi = table2.pfi.
ufi在所有表和所有时间都是唯一的。它不是行数据的散列,但您可以这样认为。

每个时期,在每个表中,一些新的pfi产生,一些旧pfi的退役。一些pfi改变属性。ufi跟踪给定(行)的任何属性的任何更改pfi,因此为它获取更改的(和新的)行table1只是一个问题:

-- 1st query
select a.*
into vm201512.property_d
from vm201512.property a
where not exists (select 1 from vm201412.property where ufi = a.ufi);
Run Code Online (Sandbox Code Playgroud)

这将选择pfi在至少一列中是新的 (new ) 或更改的所有行。

每个表的大约 96% 在各个方面都保持不变。因此,在分析跨周期变化时,我构建了一个仅包含更改数据和新数据的表。这将表大小从 ~3.5m 行减少到 …

postgresql dynamic-sql

4
推荐指数
1
解决办法
1649
查看次数

标签 统计

dynamic-sql ×1

postgresql ×1