我有一个带点几何的postgis表.
点数表:
id | uid | date | geom
具有相同uid的点是相同的目标.我正在尝试使用ST_MakeLine的GROUP BY uid创建一个完整的目标Linestring.
SELECT uid,ST_MakeLine(geom) FROM points GROUP BY uid
这有效,但我想确保点的顺序正确.
我试着通过在分组之前添加ORDER BY日期来做到这一点.
SELECT uid,ST_MakeLine(geom) FROM points ORDER BY date <-- does not work GROUP BY uid ERROR: Syntax error at or near "GROUP"
有没有办法在分组行输入聚合函数之前对其进行排序?
解决方法
ORDER BY子句可以放在聚合参数的末尾.
SELECT uid,ST_MakeLine(geom ORDER BY date) FROM points GROUP BY uid
http://www.postgresql.org/docs/9.1/static/sql-expressions.html#SYNTAX-AGGREGATES