【发布时间】:2012-07-12 07:23:29
【问题描述】:
我有以下查询,我想计算最接近“商店”类型建筑物的用户:
WITH y AS (
SELECT t.userid as us, ST_Distance(t.thegeometry,b.thegeomtry) as dist
FROM track t,buildings b
WHERE b.type = 'store'
)
SELECT us
FROM y
WHERE dist = (SELECT MIN(dist) FROM y)
问题是当我尝试计算最小值时,它给了我 0,这是不正确的。在我的数据中,ID 为 112 的用户与商店 A 之间的最小距离等于 2441 米。
【问题讨论】:
-
SELECT MIN(dist) FROM yy必须是真实的表名,不是吗? -
@DavidBélanger:CTE 即使在子查询中也是可见的。不过,这并不是必须的。
标签: sql postgresql minimum cross-join