Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 将分组行排序在聚合函数之前_Postgresql_Sql Order By_Aggregate Functions_Postgis - Fatal编程技术网

Postgresql 将分组行排序在聚合函数之前

Postgresql 将分组行排序在聚合函数之前,postgresql,sql-order-by,aggregate-functions,postgis,Postgresql,Sql Order By,Aggregate Functions,Postgis,我有一个带有点几何图形的postgis表格 积分表: 具有相同uid的点是相同的目标。我正在尝试使用创建一个完整的目标行字符串 SELECT uid, ST_MakeLine(geom) FROM points GROUP BY uid 这是可行的,但我想确保各点的顺序正确。 我尝试在分组之前添加一个按日期排序的订单 SELECT uid, ST_MakeLine(geom) FROM points ORDER BY date <-- does not work GROUP BY uid

我有一个带有点几何图形的postgis表格

积分表: 具有相同
uid
的点是相同的目标。我正在尝试使用创建一个完整的目标行字符串

SELECT uid, ST_MakeLine(geom)
FROM points
GROUP BY uid
这是可行的,但我想确保各点的顺序正确。 我尝试在分组之前添加一个
按日期排序的订单

SELECT uid, ST_MakeLine(geom)
FROM points
ORDER BY date <-- does not work
GROUP BY uid

ERROR: syntax error at or near "GROUP"
选择uid、stu生成线(geom)
从点

按日期排序是否可以在临时表中排序所需的数据,然后按uid进行外部分组

 SELECT uid, ST_MakeLine(geom)
 FROM
 (
    SELECT uid, geom
    FROM points
    ORDER BY date
 ) AS temp
 GROUP BY uid

orderby
子句可以放在聚合参数的末尾

SELECT uid, ST_MakeLine(geom ORDER BY date)
FROM points
GROUP BY uid

ST_MakeLine
不应在子查询中。的可能重复项请查看文档:他们写道,在使用此函数的聚合版本时,您需要一个带有
order by
的子查询。这里有一些例子说明如何做到这一点。
SELECT uid, ST_MakeLine(geom ORDER BY date)
FROM points
GROUP BY uid