我有一个mapfeatures_20120813
包含 2 列(标签和 pky)的 postgres 表(),大约 1000 行。每行包含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;
在第二步中,我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
?文档什么也没说。