标签: 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)的列表/数组/集的最有效方法是什么?
答案 0 :(得分:30)
总是有直截了当的skeys方法:
skeys
select distinct k from ( select skeys(my_hstore) as k from your_table ) as dt
如果您需要数组,请添加array_agg:
array_agg
select array_agg(distinct k) from ( select skeys(my_hstore) as k from your_table ) as dt