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

标签 postgresql postgresql-9.1 hstore

为了简单起见,假设我有一个只有一个列的表,它只是一个 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) 的列表/数组/集合的最有效方法是什么?

最佳答案

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

关于postgresql - 从 hstore 的所有行中检索唯一键列表的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12015942/

相关文章:

django - 在 Postgresql 中限制数据库

sql - Postgres : How to store bytea as value in hstore?

postgresql - 无法从Docker容器中连接到Postgres

python - 如何使用 sqlalchemy-migrate 编写更改列名迁移?

sql - 模式交换支持 Go GORM

postgresql - 如何将游标的表名作为函数参数传递?

performance - select * from foo (100 000 rows) 需要 4 秒,这正常吗?

hibernate - postgresql:将 bytea 转换为 bigint

bash - 在 BASH 中使用与 PostgreSQL 的开放数据库连接?

postgresql - 如何使用多个键和值 rails 5 将数据存储在 hstore 数据类型中