我在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/

10-12 22:13