2

mapfeatures_20120813約 1000 行の 2 列 (タグと pky) を持つpostgres テーブル ( ) があります。各行はhstoreと 主キーで構成されます。

   tags (hstore)          pky
"aerialway"=>"cable_car";  1
"aerialway"=>"chair_lift"; 2
"aerialway"=>"drag_lift";  3
"aerialway"=>"gondola";    4
"aerialway"=>"goods";      5
"aerialway"=>"mixed_lift"; 6
"aerialway"=>"pylon";      7
"aerialway"=>"station";    8
"aeroway"=>"aerodrome";    9
"aeroway"=>"apron";        10
...

分析のために、これらすべての単一の hstore キーと値のペアを単一の hstore -row にプッシュする必要がありますが、これを解決する方法がわかりません。
したがって、最初にすべての行を単一行のテキスト フィールドに変換します。

CREATE TABLE mf_text AS
SELECT array_to_string(array_agg(tags), ',')
FROM mapfeatures_20120813;

2 番目のステップhstoreでは、このテキスト フィールドから を作成します。

SELECT hstore(array_to_string)
FROM mf_text

しかし問題は、1000 を超えるキーと値のペアのうち 97 のみが新しい hstore-field に書き込まれることです。また、結果にパターンが見られません。完全に混同されています。

"atv"=>"no", "hgv"=>"forestry", "lit"=>"no", "psv"=>"private"
, "area"=>"yes", "boat"=>"permissive"  

hstore単一のフィールドに収まるキーと値のペアの数について、フィールドに何らかの制限がありhstoreますか? ドキュメントには何も書かれていません。

4

1 に答える 1

2

単一のhstore値の集計は、次のように単純にする必要があります。

SELECT string_agg(tags::text,',')::hstore
FROM   mapfeatures_20120813;

タイトルの質問について:要素の数に実質的に制限はありません。

あなたの発言のために:

また、結果にパターンが表示されません。完全に混同されています。

マニュアルには次のように書かれています。

ペアの順序は重要ではありません(出力で再現されない場合があります)。

于 2012-11-16T15:59:52.847 に答える