从hstore的所有行检索唯一键列表的最有效方法?

时间:2012-08-18 04:48:30

标签: postgresql postgresql-9.1 hstore

为简单起见,假设我有一个包含单个列的表,它只是一个hstore。从hstore的所有行获取所有键的unqiue列表的最有效方法是什么?

例如

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 个答案:

答案 0 :(得分:30)

总是有直截了当的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