0
我目前使用的是Postgres 9.1Postgres/Postgis - 查詢剪輯光柵中的所有值
我的目標是用多邊形剪輯PostGIS柵格。然後,我想要爲該多邊形中包含的每個柵格像素指定postgres數組或分隔的一組值。這是到目前爲止,我已經得到了查詢:
SELECT p.gid, (ST_ValueCount(ST_Clip(r.rast, p.geom))).value AS fval
FROM temp_raster AS r, temp_shapefile AS p
WHERE (r.start_time = 1384516800)
GROUP BY gid, fval;
這將輸出:
gid | fcstval
-----+---------
1 | 0
1 | 2
2 | 0
2 | 2
3 | 5
4 | 0
4 | 1
4 | 2
4 | 3
4 | 5
這個數據是好的,但我想一個集合的各值的GID是這樣的:
gid | fcstval
-----+----------
1 | 0,2
2 | 0,2
3 | 5
4 | 0,1,2,3,5
我遇到的麻煩是試圖將這些值聚合到數組或分隔字符串中。這是我嘗試在一個數組:
SELECT p.gid, array_agg((ST_ValueCount(ST_Clip(r.rast, p.geom))).value) AS fval
FROM temp_raster AS r, temp_shapefile AS p
WHERE (r.start_time = 1384516800)
GROUP BY gid;
這並不工作,並提供了錯誤:
ERROR: set-valued function called in context that cannot accept a set
我的猜測是,這是因爲我不能這樣叫ARRAY_AGG。否則,我有點難以找出如何做到這一點。子查詢也許?儘管爲了實現這個目標,我仍然無法做出任何事情。
感謝您的幫助!