Windows 7 x64 で Postgres 9.1.3 32 ビットを実行しています。(64 ビット Postgres と互換性のある Windows PostGIS リリースがないため、32 ビットを使用する必要があります。) (編集: PostGIS 2.0 の時点で、Windows 上の Postgres 64 ビットと互換性があります。)
テーブル ( ) を一時テーブルと結合し、結果のデータを 3 番目のテーブル ( ) に挿入するクエリがあります。consistent.master
consistent.masternew
これは であるためleft join
、結果のテーブルには、クエリの左側のテーブルと同じ数の行が含まれている必要があります。ただし、これを実行すると:
SELECT count(*)
FROM consistent.master
私は得る2085343
。しかし、これを実行すると:
SELECT count(*)
FROM consistent.masternew
私は得る2085703
。
masternew
よりも多くの行を持つにはどうすればよいmaster
ですか? クエリの左側のテーブルであるmasternew
と同じ数の行を持つべきではありませんか?master
以下はクエリです。master
とテーブルはmasternew
同じ構造である必要があります。
--temporary table created here
--I am trying to locate where multiple tickets were written on
--a single traffic stop
WITH stops AS (
SELECT citation_id,
rank() OVER (ORDER BY offense_timestamp,
defendant_dl,
offense_street_number,
offense_street_name) AS stop
FROM consistent.master
WHERE citing_jurisdiction=1
)
--Here's the insert statement. Below you'll see it's
--pulling data from a select query
INSERT INTO consistent.masternew (arrest_id,
citation_id,
defendant_dl,
defendant_dl_state,
defendant_zip,
defendant_race,
defendant_sex,
defendant_dob,
vehicle_licenseplate,
vehicle_licenseplate_state,
vehicle_registration_expiration_date,
vehicle_year,
vehicle_make,
vehicle_model,
vehicle_color,
offense_timestamp,
offense_street_number,
offense_street_name,
offense_crossstreet_number,
offense_crossstreet_name,
offense_county,
officer_id,
offense_code,
speed_alleged,
speed_limit,
work_zone,
school_zone,
offense_location,
source,
citing_jurisdiction,
the_geom)
--Here's the select query that the insert statement is using.
SELECT stops.stop,
master.citation_id,
defendant_dl,
defendant_dl_state,
defendant_zip,
defendant_race,
defendant_sex,
defendant_dob,
vehicle_licenseplate,
vehicle_licenseplate_state,
vehicle_registration_expiration_date,
vehicle_year,
vehicle_make,
vehicle_model,
vehicle_color,
offense_timestamp,
offense_street_number,
offense_street_name,
offense_crossstreet_number,
offense_crossstreet_name,
offense_county,
officer_id,
offense_code,
speed_alleged,
speed_limit,
work_zone,
school_zone,
offense_location,
source,
citing_jurisdiction,
the_geom
FROM consistent.master LEFT JOIN stops
ON stops.citation_id = master.citation_id
問題が発生した場合に備えて、VACUUM FULL ANALYZE
両方のテーブルを実行してインデックスを再作成しました。(正確なコマンドは不明です。pgAdmin III で行いました。)