Postgisでポリゴンのポイントを数える


16

単純な問題があります。ポリゴンのセット内のポイントの数をカウントしたいのです。

私はすでにSQLを持っていますが、実際にポイントを含むポリゴンのgidのみを返します。

私のテーブル:19.000行のポリゴンレイヤーと450行のポイントレイヤー。

次のSQL

select grid.gid, count(*) AS totale FROM grid, kioskdhd3 WHERE 
st_contains(grid.geom,kioskdhd3.geom) GROUP BY grid.gid;

実際にポイントを含む320個のポリゴンのみを返します。しかし、ポイントの数が0であっても、すべてのポリゴンが返されるようにします。

もちろん、それは私のWHERE節に関係しています。st_containsのどこに置く必要がありますか?

ありがとう、カーステン



感謝しますが、それらにはすべてWHERE句があります。必要なのかわかりません。どのように書き直しますか?
hoge6b01

回答:


23
SELECT grid.gid, count(kioskdhd3.geom) AS totale 
FROM grid LEFT JOIN kioskdhd3 
ON st_contains(grid.geom,kioskdhd3.geom) 
GROUP BY grid.gid;

こんにちは、ニックラス、メーリングリストからこの回答を受け取りましたよね?みんなありがとう
-hoge6b01

2
いいえ、ごめんなさい、似ていますか?まあ、リレーショナルデータベースを扱う場合、外部結合はロケット科学ではありません
;

1
:-)リストを確認する必要がありました。タイミングを見てください。ここでの私の答えはリスト-回答の前でしたが、あなたが言ったように、非常に似ています:
ニックラスアヴェン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.