1
我的问题是类似这样的问题How to create a PostgreSQL partitioned sequence?如何为多边形顶点生成的点创建PostgreSQL分区序列?
在我的情况下,我使用此代码
SELECT geom, gid, path,nextval('seq_oid1') as seq_id,
rank() OVER (PARTITION BY gid ORDER BY gid) AS pos
FROM (
SELECT DISTINCT ON (geom) geom, path, gid
FROM (
SELECT (ST_DumpPoints(geom)).geom, (ST_DumpPoints(geom)).path, gid
FROM edge_snapping.polygon1
) f
ORDER BY geom, path, gid
) f
ORDER BY gid, path;
多边形顶点转换为点,但这个代码生成序列标识的所有顶点无论多边形的ID。
我想根据多边形ID分区索引点,并且从每个多边形生成的点应以序号id开头。我感谢任何帮助。因为我不确定在这种情况下该怎么做。
错误:列“pos”不存在,它给出了这样的错误。 –
SELECT * FROM (SELECT的geom,GID,路径,NEXTVAL( 'seq_oid1')作为seq_id, 秩()OVER(PARTITION BY GID ORDER BY GID)AS POS FROM( SELECT DISTINCT ON(的geom)的geom,路径,GID FROM(SELECT (ST_DumpPoints(GEOM))。的geom,(ST_DumpPoints(GEOM))。路径,GID FROM edge_snapping.polygon1 )的F ORDER BY的geom,路径,GID )的F ORDER BY GID,路径 )f3 WHERE pos = 1 –
谢谢你的工作! –