時,我有創建使用創建表一個表,並與這些列:多行錯誤填充表
create table myschema.mytable(
id serial PRIMARY KEY,
row_num integer,
col_num integer,
pix_centroid geometry,
pix_val double precision
)
當我試圖填充它:
insert into pixelbased (id, row_num, col_num, pix_centroid, pix_val)
values (
DEFAULT,
(select((ST_PixelAsPolygons(rast, 1)).x) from mytable where rid=3),
(select((ST_PixelAsPolygons(rast, 1)).x) from mytable where rid=3),
(select(ST_Centroid((ST_PixelAsPolygons(rast, 1)).geom)) from rwanda8 where rid=3),
(select(ST_PixelAsPolygons(rast, 1)).val from mytable where rid=3)
)
我遇到以下錯誤:
錯誤:由用作表達式的子查詢返回多於一行的行。
我知道,因爲我有不止一行的每列,這是有道理的有這樣的錯誤。但我真的需要按照提及的方式計算所有列。任何人都知道我該怎麼辦? 其實我想結果插入表中以下查詢:
select
(ST_PixelAsPolygons(rast, 1)).val as geomval1,
(ST_PixelAsPolygons(rast, 1)).x as X,
(ST_PixelAsPolygons(rast, 1)).y as Y,
(ST_Centroid((ST_PixelAsPolygons(rast, 1)).geom)) as geom
from rwanda8
where rid=3
任何人都知道我應該怎麼辦?
謝謝你Clodoaldo。它爲我工作。如果我想推廣查詢以包含所有的rid值,應該怎麼做?我想爲每個具有不同名稱的rid分別設置'(ST_PixelAsPolygons(rast,1)).val as geomval1'。列數超過1000個,我無法手動完成。 –
@ f.ashouri如果你有超過1000列,那麼你做錯了。創建另一個問題並解釋你的數據,要求它正常化。 –
對不起,我有1000多個ROWS,每個人都有特定的擺脫。我認爲現在很清楚。我想爲每個擺脫單獨的_geomval_列。 –