我有一个请求,使用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最接近的对象是什么。
你知道我应该怎么做吗?
答案 0 :(得分:0)
我认为您只想删除min()
汇总
或者你可以添加一个窗口规范,例如min(...) OVER (ROWS UNBOUNDED PRECEDING)
允许你这样做,但我不认为这是你想要的,因为它会给你任何前面的行组合的最小距离.....