我在PostgreSQL中有一个轨迹表,希望为每个轨迹创建多段线。
每行数据包含datetime
(datetime)、session_id
(string)和geom
(Point geometry)
目标是按照datetime
的时间顺序用所有点构造每条多段线
我试过:
select session_id, st_makeline(geom) as geom
from trajectory
group by session_id
上面的代码给了我每条轨迹的多段线,但是对于每条多段线,顺序是错误的。
如何对多段线中的节点排序,使它们遵循日期时间的顺序?
最佳答案
您可以将order by
子句添加到st_makeline()
,如the postgis docs中所述:
select session_id, st_makeline(geom order by datetime) as geom
from trajectory
group by session_id
关于postgresql - PostgreSQL分组,但在聚合函数内部排序(ST_Makeline),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58554710/