«столбец указан более одного раза» во время CREATE TABLE AS SELECT - PullRequest
0 голосов
/ 16 октября 2018

У меня есть шейп-файл, содержащий мультиполигоны и растровый файл.Я хочу извлечь количество, медиану, среднее, минимальное и максимальное количество пикселей, которые пересекаются с соответствующими полигонами, и агрегировать значения по строкам

. Для этого я использую следующий код:

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

Существует повторение столбцов count, min, max и других показателей.

Я хочу избавиться от этих повторяющихся столбцов, а также хочу создатьтаблица.

1 Ответ

0 голосов
/ 16 октября 2018

Проблема в том, что и ply, и функция st_summarystats имеют столбец с именем count, поэтому в новой таблице будет два столбца с одинаковым именем, что невозможно.

Выдолжны использовать разные имена столбцов.Самый простой способ - явно указать имена столбцов:

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

Чтобы избавиться от ненужных столбцов, укажите нужные столбцы вместо *.

...