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

jay*_*lee 17 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
Run Code Online (Sandbox Code Playgroud)

检索包含(a,b,c,x,y,z)的列表/数组/集的最有效方法是什么?

mu *_*ort 32

总是有直截了当的skeys方法:

select distinct k
from (
    select skeys(my_hstore) as k
    from your_table
) as dt
Run Code Online (Sandbox Code Playgroud)

如果你需要一个数组,那么添加一个array_agg:

select array_agg(distinct k)
from (
    select skeys(my_hstore) as k
    from your_table
) as dt
Run Code Online (Sandbox Code Playgroud)

  • 我认为`从my_table`中选择不同的skeys(my_hstore)是有效的 (3认同)