ARRAY_LENGTH
Возвращает длину массива по указанному измерению.
PostgreSQL 17.5
ARRAY_LENGTH(array, dimension)Параметры
- arrayanyarray
- Массив
- dimensioninteger
- Номер измерения, для обычного массива — 1
Возвращаемое значение
Целое число (integer); NULL для пустого массива
Примеры
Длина массива по измерениям
PostgreSQL 17.5
SELECT ARRAY_LENGTH(ARRAY [10, 20, 30], 1) AS len,
ARRAY_LENGTH(
ARRAY [[1, 2],
[3, 4],
[5, 6]], 2) AS second_dim,
ARRAY_LENGTH('{}'::integer[],
1
) AS empty_array;Число членов семьи в каждом статусе
PostgreSQL 17.5
SELECT status,
ARRAY_LENGTH(ARRAY_AGG(member_name), 1) AS members
FROM FamilyMembers
GROUP BY status
ORDER BY status;Подробности
Для пустого массива функция возвращает NULL, а не 0, поэтому при подсчёте пригодится COALESCE(ARRAY_LENGTH(a, 1), 0). Общее число элементов во всех измерениях возвращает CARDINALITY, и для пустого массива она даёт 0.