Có thể nhóm theo hình học?
Chúng tôi thực hiện rất nhiều điểm đếm bằng hình học đa giác, liên quan đến việc giao dữ liệu trước để đếm các trường hợp của học sinh. theo ranh giới trường học, nhóm khối, vv
SELECT
n.nbhd_id
, count(*) AS count_burglaries
FROM denver.crime AS c
JOIN denver.neighborhoods AS n
ON ST_Intersects(c.geom, n.geom)
WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id
Bước thứ hai là bọc một truy vấn phụ để nối hình học từ bảng đa giác trở lại truy vấn đếm:
SELECT
count.*
, n.nbhd_name
, n.geom
FROM (
SELECT
n.nbhd_id
, count(*) AS count_burglaries
FROM denver.crime AS c
JOIN denver.neighborhoods AS n
ON ST_Intersects(c.geom, n.geom)
WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id
) AS count
JOIN denver.neighborhoods AS n
ON count.nbhd_id = n.nbhd_id
Nhưng có vẻ như bạn cũng có thể sử dụng hình học trong NHÓM THEO:
SELECT
n.nbhd_id
, n.nbhd_name
, n.geom
, count(*) AS count_burglaries
FROM denver.crime AS c
JOIN denver.neighborhoods AS n
ON ST_Intersects(c.geom, n.geom)
WHERE c.offense_ty LIKE 'BURG%'
GROUP BY n.nbhd_id, nbhd_name, n.geom
Là bao gồm hình học trong NHÓM THEO một cách tiếp cận đúng?
GROUP BY
đạt được? Nó không thể tham gia bởi một khóa duy nhất củanbhd_id
? Bạn đang làm cho sắp xếp rộng hơn, làm tăng thời gian chạy, có thể nhiều hơn một lần tham gia tiếp theo.