web-dev-qa-db-ja.com

postgresqlで配列のサイズを見つける方法

配列のサイズを見つける方法はありますか?

例えば、

CREATE TABLE example (id integer[]) ;

INSERT INTO exam VALUES ( '{}');

INSERT INTO exam VALUES ( '{5,6,7}');

これから、次のような結果を得る可能性はありますか、

size

0

3
59
aabi

Vyegorovが述べたように、array_lengthトリックを行います。または、配列が1次元(おそらく)であり、PostgreSQL 9.4以降を実行していることがわかっている場合は、cardinalityを使用できます。

SELECT cardinality(id) FROM example;
74
Adam Dingle

簡単です ドキュメントを読む

SELECT array_length(id, 1) FROM example;
65
vyegorov

配列の次元が常に1であると仮定することは、私が快適に感じるものではないので、次のことを行いました。

SELECT coalesce(array_length(id, 1), 0) as size FROM example;

少なくとも10年は経ちましたが、以前はcoalesceで多くのことをしていましたが、かなり便利でした。たぶん私は快適さのために手を伸ばしているのでしょうか?

2
jc00ke

Postgres 8.2でarray_upperを使用する必要がありました。

1
Sean Anderson