Đếm số điểm trong Đa giác với Postgis


16

Tôi có một vấn đề đơn giản: Tôi muốn đếm số điểm trong một tập hợp đa giác.

Tôi đã có SQL nhưng nó chỉ trả lại gid của polygone thực sự có chứa điểm.

Các bảng của tôi: một lớp đa giác có 19.000 hàng và một lớp điểm với 450 hàng.

SQL sau

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

chỉ trả về 320 đa giác thực sự chứa điểm. Nhưng tôi muốn tất cả các đa giác được trả về, thậm chí nghĩ rằng số điểm là 0.

Tất nhiên nó phải làm với mệnh đề WHERE của tôi. Tôi phải đặt st_contains ở đâu?

Cảm ơn bạn



cảm ơn, nhưng tất cả đều có mệnh đề WHERE. Tôi không biết nếu tôi cần. Làm thế nào bạn sẽ viết lại nó?
hoge6b01

Câu trả lời:


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;

Xin chào Nicklas, nhận được câu trả lời này từ danh sách gửi thư, phải không? Cảm ơn mọi người
hoge6b01 17/03/13

2
Không, xin lỗi, nó có giống nhau không? Chà, tham gia bên ngoài không phải là khoa học tên lửa khi xử lý các cơ sở dữ liệu quan hệ ;-)
Nicklas Avén 17/03/13

1
:-) Tôi phải kiểm tra danh sách. Nhìn vào thời gian. Câu trả lời của tôi ở đây là trước danh sách- câu trả lời, nhưng như bạn đã nói, rất giống nhau :-)
Nicklas Avén 17/03/13

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.