0
我在我的PostgreSQL 9.5數據庫中有兩個表,即pt
和lines
。表pt
包含point geometry
和表lines
包含line geometry
和values (numeric)
。下面的查詢,爲每個pt
選擇lines
50米範圍內搜索距離和投射新點到行具有值> 500如何在PostGIS/PostgreSQL中選擇最高級別的幾何圖形?
Select distinct on (pt_id)
pt.gid as pt_id,
case when lines.value > 500
then st_closestpoint(lines.geom, pt.geom)
else null
end as new_pt
from
pt
left join lines on
st_dwithin(pt.geom, lines.geom, 50)
order by pt_id;
示例場景中示出了下圖:
我需要修改上面的查詢來添加排名/優先級條件,使得具有最高值的行應該具有最高排名,並且new_pt
應該被投影到這個排名最高的行。我如何修改上面的代碼,以便大數據集的查詢應該先將行列分配給每行,然後將項目指向具有最高值的行?
謝謝。那麼沒有必要添加排名? –
否,將選擇具有最高價值的行 - 您不需要rank()(您可以使用它,但這種方法更短) – filiprem