1

Nicklas、前の質問への回答に感謝します。

私の無知と、かなり単純な質問になるかもしれないことを尋ねることを許してください。しかし、データベースは私の専門分野ではありません。

各パーシンクトでのクラッシュの数を示すselectステートメント: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_ofcrashsです。

再び支援に感謝します

クリス

4

1 に答える 1

1

ハロー

precinctは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は、アンダースコアバージョンを実行する前に、交差するボウニングボックスを見つける最初のインデックススキャンを実行します。

したがって、containsの代わりにst_containsを絶対に使用することをお勧めします。テーブルがインデックスを必要とするほど大きい場合:このクエリでは、空間インデックスはテーブルとプレシンクトのインデックスの両方で重要です。インデックスを作成した後、それらを機能させるためにテーブルを分析することを忘れないでください。

ところで、他の人が答えようとする必要がないように、あなたが答えに満足しているなら、あなたは質問を答えられたものとしてマークすることになっていると思います。

HTHニクラス

于 2010-10-26T07:35:45.140 に答える