我的postgresql数据库中有一个hstore列。数据库的每一行在hstore-column中具有不同数量的键/值。如何获得每行的键/值数量?
答案 0 :(得分:6)
select hstore_column,
array_length(akeys(hstore_column), 1) as num_keys
from the_table
答案 1 :(得分:2)
您可以使用hstore
functions之一将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;