6

我的 postgresql 数据库中有一个 hstore 列。数据库的每一行在 hstore-column 中都有不同数量的键/值。如何获取每行的键/值的数量?

4

2 回答 2

7
select hstore_column, 
       array_length(akeys(hstore_column), 1) as num_keys
from the_table
于 2013-09-12T13:45:49.177 回答
2

您可以使用其中一个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;
于 2013-09-12T13:48:10.360 回答