[英]Count all point in geo polygon (sql server 2014)
我有一张桌子,上面有很多使用地理多边形映射的位置
然后我有另一个表,该表的属性的位置是“地理位置”属性
如果使用此代码,则会得到特定位置的属性数量:
SELECT COUNT(id) FROM Property
WHERE [Status] = 1
AND Location.Filter(Geography::Parse('POLYGON ((8.476 40.2591,8.4618 40.241,8.4787 40.2403,8.4851 40.2539,8.476 40.2591))')) = 1
但是问题在于我想知道每个位置有多少个属性(查询中使用的多边形来自位置表)
表之间的唯一连接是位置点
我真的需要一些帮助
编辑:
多亏了Ben,我终于有了它,下面的代码对我有用:)
SELECT location.Id, (SELECT COUNT(property.Id) FROM Property AS property WHERE property.Location.Filter(Geography::Parse('POLYGON ((' + location.GeoPolygon + '))')) = 1) AS PropertyCount
FROM Location AS location
这样的事情应该起作用:
SELECT l.LocationID, count(*)
FROM dbo.Location as l
JOIN dbo.Property as p
on l.geoColumn.STContains(p.Location) = 1
我假设您的Location
表上的结构类似:
create table dbo.Location (
LocationID int,
geoColumn geography,
…
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.