【发布时间】:2020-10-27 20:17:14
【问题描述】:
对于一个项目,我必须在厄瓜多尔找到最长的道路 (codigo),并使用 SQL 显示它开始和结束的省份 (provincia)。数据以表格形式提供(见图)。每行代表一个路段并具有一个几何图形(geom 列)。当然,道路是由许多具有相同名称(codigo)的路段组成的。
我已经有以下代码,它返回最长的道路和公里数:
select v.codigo as road_name,
sum(ST_Length(geom)/1000) as length_km, v.provincia as province
from vias v
group by v.codigo
order by length_km desc
limit 1
我仍在苦苦寻找如何到达这条最长道路起点和终点的省份(省)。有人知道怎么写代码吗?
【问题讨论】:
-
该代码是否真的有效,因为另一个非聚合列
v.provincia不在GROUP BY中。也许它在功能上依赖于v.codigo?但是一个省不会有很多路吗? -
是的!我检查并上传了我试图达到结果的代码,但它不起作用。在下方,您可以找到有效的代码并生成最长道路的名称和以公里为单位的长度。 select codigo as road_name,sum(ST_Length(geom)/1000) as length_km from vias v group by v.codigo order by length_km desc limit 1
标签: sql postgresql postgis