我在我的PostgreSQL数据库中有一个hstore列。数据库的每一行在hstore列中具有不同数量的键/值对。如何获取每一行的键/值对数量?
我在我的PostgreSQL数据库中有一个hstore列。数据库的每一行在hstore列中具有不同数量的键/值对。如何获取每一行的键/值对数量?
select hstore_column,
array_length(akeys(hstore_column), 1) as num_keys
from the_table
你可以使用 hstore
函数之一,将 hstore
转换为其他数据类型,以便检索元素数。例如,你可以使用 avalue
来计算 hstore
值中键的数量:
SELECT id, array_length(avals(my_hstore_field), 1) AS count_keys
FROM mytable;
在文档中有一个很好的示例,可以获取所有键及其出现次数,这可能对您有用:
SELECT key, count(*) FROM
(SELECT (each(h)).key FROM testhstore) AS stat
GROUP BY key
ORDER BY count DESC, key;