postgresql – 在聚合函数之前对分组行进行排序

我有一个带点几何的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

相关文章

项目需要,有个数据需要导入,拿到手一开始以为是mysql,结果...
本文小编为大家详细介绍“怎么查看PostgreSQL数据库中所有表...
错误现象问题原因这是在远程连接时pg_hba.conf文件没有配置正...
因本地资源有限,在公共测试环境搭建了PGsql环境,从数据库本...
wamp 环境 这个提示就是说你的版本低于10了。 先打印ph...
psycopg2.OperationalError: SSL SYSCALL error: EOF detect...