微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐