19

簡単にするために、hstore である単一の列を持つテーブルがあるとします。hstore のすべての行からすべてのキーの一意のリストを取得する最も効率的な方法は何ですか?

例えば。

my_hstore
------------
a=>1,b=>2
b=>2,c=>3
x=>10,y=>11
y=>11,z=12

(a,b,c,x,y,z) を含むリスト/配列/セットを取得する最も効率的な方法は何ですか?

4

1 に答える 1

34

常に簡単なskeysアプローチがあります。

select distinct k
from (
    select skeys(my_hstore) as k
    from your_table
) as dt

配列が必要な場合は、次を追加しarray_aggます。

select array_agg(distinct k)
from (
    select skeys(my_hstore) as k
    from your_table
) as dt
于 2012-08-18T05:00:59.730 に答える