hstore のすべての行から一意のキーのリストを取得する最も効率的な方法は? 質問する

hstore のすべての行から一意のキーのリストを取得する最も効率的な方法は? 質問する

簡単にするために、hstore だけの 1 つの列を持つテーブルがあるとします。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) を含むリスト/配列/セットを取得する最も効率的な方法は何ですか?

ベストアンサー1

常にまっすぐ進むべき道がある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

おすすめ記事