web-dev-qa-db-fra.com

Comment trouver la taille d'un tableau dans PostgreSQL

Existe-t-il un moyen de trouver la taille d'un tableau?

Par exemple,

CREATE TABLE example (id integer[]) ;

INSERT INTO exam VALUES ( '{}');

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

A partir de là, existe-t-il des possibilités d'obtenir un résultat comme le suivant,

size

0

3
59
aabi

Comme l'a mentionné vyegorov, array_length fera l'affaire. Ou si vous savez que le tableau est à 1 dimension (ce qui est probable) et exécute PostgreSQL 9.4 ou supérieur, vous pouvez utiliser cardinality:

SELECT cardinality(id) FROM example;
74
Adam Dingle

C'est trivial lecture de documents :

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

En supposant que la dimension du tableau sera toujours 1, je ne me sens pas à l'aise, alors je suis allé avec ce qui suit:

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

Cela fait ... au moins une décennie, mais nous faisions beaucoup avec coalesce et c'était assez pratique. Peut-être que je l'atteins par confort?

2
jc00ke

J'ai dû utiliser array_upper dans postgres 8.2.

1
Sean Anderson