2012-06-25 12 views
25

Czy istnieje sposób na znalezienie rozmiaru tablicy?Jak znaleźć rozmiar tablicy w postgresql

na przykład

CREATE TABLE example (id integer[]) ; 

INSERT INTO exam VALUES ('{}'); 

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

Od tego, czy są jakieś możliwości, aby uzyskać wynik jak następujące,

size 

0 

3 

Odpowiedz

34

To trywialne reading docs:

SELECT array_length(id, 1) FROM example; 
+5

Czy wiesz, co jest drugim parametrem funkcji 'array_length'. Nie znaleziono tych informacji w dokumentach. – suzanshakya

+10

@suzanshakya, długość żądanej tablicy _dimension_ ツ – vyegorov

27

Jak vyegorov wspomniano, array_length załatwi sprawę. Lub jeśli wiesz, że tablica jest 1-wymiarowy (co jest prawdopodobne) i działa PostgreSQL 9.4 lub wyższy, można użyć cardinality:

SELECT cardinality(id) FROM example; 
+5

Jeśli ktokolwiek może wymienić główną różnicę w używaniu array_length i cardinality, to byłoby świetnie –

+2

'cardinality' zwraca liczbę wszystkich elementów w jednej lub wielowymiarowej tablicy. Więc 'wybierz liczność (ARRAY [[1,2], [3,4]]);' zwróci "4", podczas gdy 'wybierz array_length (ARRAY [[1,2, [3,4]], 1) 'zwróci' 2'. Jeśli liczysz pierwszy wymiar, 'array_length' jest bezpieczniejszym zakładem. – Roshambo

Powiązane problemy