Postgresql Postgres-扩展稀疏数据
我有一张这样的桌子:Postgresql Postgres-扩展稀疏数据,postgresql,Postgresql,我有一张这样的桌子: x | y | f ========= 0 | 1 | 3.4 1 | 2 | 3.5 表中仅存在某些x和y值。PK是x,y 我想扩展它,这样所有的x和y值都存在。对于任何已经存在的值,保留f。对于新行,设置f=0。因此,在上面,我们将添加(0,0,0.0),(1,0,0.0),(1,1,0.0)等 我认为这可以通过某种类型的连接来实现,但我不确定如何使它仅在原始表中没有记录的情况下才这样做 INSERT INTO t (x, y, f) SELECT a.x
x | y | f
=========
0 | 1 | 3.4
1 | 2 | 3.5
表中仅存在某些x和y值。PK是x,y
我想扩展它,这样所有的x和y值都存在。对于任何已经存在的值,保留f。对于新行,设置f=0。因此,在上面,我们将添加(0,0,0.0),(1,0,0.0),(1,1,0.0)
等
我认为这可以通过某种类型的连接来实现,但我不确定如何使它仅在原始表中没有记录的情况下才这样做
INSERT INTO t (x, y, f)
SELECT a.x, b.y, 0.0
FROM
generate_series(0, 1000000) a(x)
CROSS JOIN generate_series(0, 1000000) b(y)
LEFT JOIN t ON
t.x = a.x AND t.y = b.y
WHERE t.x IS NULL