如何使用Postgres获取有关聚合对象的信息

时间:2013-12-04 09:55:25

标签: postgresql

我有一个请求,使用group by来获取两个对象之间的MIN距离。

WITH point_interet AS (
    SELECT pai.ogc_fid as p1id, pai2.ogc_fid as p2id, MIN(ST_Distance(pai.geom, pai2.geom)) AS distance
    FROM point_activite_interet pai
    JOIN point_activite_interet pai2 ON pai.ogc_fid > pai2.ogc_fid
    GROUP BY pai.ogc_fid)
SELECT * FROM point_interet
ORDER BY distance DESC;

这不起作用,因为Postgres说p2id应该在GROUP BY子句中实际上不是真的,我想知道与pai.ogc_fid最接近的对象是什么。

你知道我应该怎么做吗?

1 个答案:

答案 0 :(得分:0)

我认为您只想删除min()汇总

或者你可以添加一个窗口规范,例如min(...) OVER (ROWS UNBOUNDED PRECEDING)允许你这样做,但我不认为这是你想要的,因为它会给你任何前面的行组合的最小距离.....