另一种方法是将数据添加到PostGIS表中的多个记录中

另一种方法是将数据添加到PostGIS表中的多个记录中,gis,postgis,Gis,Postgis,Nicklas,谢谢你回答我之前的问题 请原谅我的无知,请原谅我问了一些可能很简单的问题,但数据库不是我的专业领域 select语句提供了每个percinct中的崩溃数: 从nycpp P,nyccrash C中选择P.PRECINT,计数(C),其中_st_包含(P.the_geom,C.crashpoint)组,按P.PRECINT顺序按P.PRECINT排序 我只想将计数添加到我的nycpp表中。保存计数的变量是崩溃数 再次感谢您的帮助 克里斯你好 我假设辖区是nycpp中唯一的id,那么

Nicklas,谢谢你回答我之前的问题

请原谅我的无知,请原谅我问了一些可能很简单的问题,但数据库不是我的专业领域

select语句提供了每个percinct中的崩溃数: 从nycpp P,nyccrash C中选择P.PRECINT,计数(C),其中_st_包含(P.the_geom,C.crashpoint)组,按P.PRECINT顺序按P.PRECINT排序

我只想将计数添加到我的nycpp表中。保存计数的变量是崩溃数

再次感谢您的帮助

克里斯

你好

我假设辖区是nycpp中唯一的id,那么您可以尝试:

update nycpp set number_of crashes=a.n_crashes from 
(SELECT P.precinct, count(C) as n_crashes FROM nycpp P, nyccrash C 
WHERE _st_contains(P.the_geom, C.crashpoint) 
GROUP BY P.precinct 
ORDER BY P.precinct) a
where nycpp.precinct=a.precinct;
但是为什么要使用_st_contains而不是st_contains呢

下划线版本不会使用您的空间索引,但在运行下划线版本之前,st_contains将执行第一个indexscan查找相交边界框的操作

因此,您可能绝对希望使用st_contains而不是contains。如果您的表足够大,需要索引:在这个查询中,空间索引对表和辖区索引都很重要。在创建索引后,不要忘记分析表以使其正常工作

顺便说一句,如果你对答案感到满意,我认为你应该将问题标记为已回答,这样其他人就不必尝试回答

嗯 尼古拉斯

你好

我假设辖区是nycpp中唯一的id,那么您可以尝试:

update nycpp set number_of crashes=a.n_crashes from 
(SELECT P.precinct, count(C) as n_crashes FROM nycpp P, nyccrash C 
WHERE _st_contains(P.the_geom, C.crashpoint) 
GROUP BY P.precinct 
ORDER BY P.precinct) a
where nycpp.precinct=a.precinct;
但是为什么要使用_st_contains而不是st_contains呢

下划线版本不会使用您的空间索引,但在运行下划线版本之前,st_contains将执行第一个indexscan查找相交边界框的操作

因此,您可能绝对希望使用st_contains而不是contains。如果您的表足够大,需要索引:在这个查询中,空间索引对表和辖区索引都很重要。在创建索引后,不要忘记分析表以使其正常工作

顺便说一句,如果你对答案感到满意,我认为你应该将问题标记为已回答,这样其他人就不必尝试回答


尼古拉斯

尼古拉斯。。。教授没有提到圣母玛利亚和圣母玛利亚之间有区别。。。老兄!!在查看您的回复并阅读更新后,我能够完成数据库的设置!!谢谢你的帮助!!我真的学到了很多。。。现在在openlayersNicklas中显示数据。。。教授没有提到圣母玛利亚和圣母玛利亚之间有区别。。。老兄!!在查看您的回复并阅读更新后,我能够完成数据库的设置!!谢谢你的帮助!!我真的学到了很多。。。现在开始在openlayers中显示数据