在CREATE TABLE AS SELECT期间“指定了多个列”

时间:2018-10-16 10:02:10

标签: postgresql postgis

我有一个shapefile,其中包含多面体和一个光栅文件。我想要的是提取与相应多边形相交的像素的计数,中位数,均值,最小值和最大值并逐行汇总值

为此,我正在使用以下代码:

CREATE TABLE <some_table_name> AS
SELECT ply.*,
       (St_SummaryStats(St_Union(ST_Clip(rast,1,geom, true)))).*
FROM  <shapefile_name> AS ply 
     ,<raster_filename>
WHERE st_intersects(rast,geom)
GROUP BY gid;

但是在执行此操作时,出现此错误:

ERROR:  column "count" specified more than once
SQL state: 42701

此外,如果我删除了创建表的初始查询,则会得到如下输出:

Output Table

重复计数,最小值,最大值和其他统计信息列。

我想摆脱这些重复的列,我也想创建表。

1 个答案:

答案 0 :(得分:1)

问题在于ply和函数st_summarystats都有一个名为count的列,因此新表将有两个具有相同名称的列,这是不可能的。 / p>

您必须使用不同的列名称。最简单的方法是显式指定列名称:

CREATE TABLE some_table (colname1, colname2, ...)
AS SELECT ...

要摆脱不需要的列,请指定所需的列而不是*