尼克拉斯,感谢我对上一个问题的回答......
请原谅我的无知,并询问可能会变成相当简单的问题,但数据库不是我的专业领域。
select语句,它给出了每个percinct中的崩溃次数: SELECT P.precinct,count(C)FROM nycpp P,nyccrash C WHERE _st_contains(P.the_geom,C.crashpoint)GROUP BY P.precinct ORDER BY P.precinct;
我想将计数添加到我的nycpp表中,保存计数的变量是number_of崩溃....
再次感谢您的帮助
克里斯
答案 0 :(得分:1)
喂
我认为区域是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会在运行theunderscore版本之前执行第一次indexscan查找相交的布局框。
所以,你可能绝对想要使用st_contains而不是contains。如果您的表足够大以至于需要索引:在此查询中,空间索引对于两个表和区域上的索引都很重要。在创建索引之后,不要忘记分析表,以使它们工作。
顺便说一句,如果您对答案感到满意,我认为您应该将问题标记为已回答,以便其他人不必尝试回答这些问题。HTH 尼克拉斯