1

カウント機能に問題があります... G10 ポリゴンの横にあるすべてのポリゴンを分離したいのですが、ポリゴン (近隣) 内のポイント (地下鉄の駅) の数をカウントしたいのですが、その回答があったとしても回答を受け取りたいです。 0 でなければなりません。

私は次のステートメントを使用しました:

select a2.name, count(m.geom) 
from arr a1, arr a2, metro m 
where n1.code='G10' 
and ((st_touches(a1.geom, a2.geom)) or
(st_overlaps(a1.geom, a2.geom))) 
and ST_Contains(a2.geom, s.geom)
group by a2.name, m.geom

問題が where 句の部分にあることはわかっていますがand ST_Contains(a2.geom, s.geom)、それを解決する方法がわかりません!

4

1 に答える 1

1

明示的に使用するLEFT JOIN

SELECT  a1.name, COUNT(a2.code)
FROM    arr a1
LEFT JOIN
        arr a2
ON      ST_Intersects(a1.geom, a2.geom)
WHERE   a1.code = 'G10'

元のクエリに明らかなタイプミスがあり、それらをどのように接続する必要があるかが明確でないため、他のテーブルは含めていません。

于 2012-11-03T22:12:02.093 に答える