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