Перейти к основному содержимому
  1. Сегодня я узнал/
  2. PostreSQL/

Как посчитать количество элементов в массиве в PostgreSQL?

·247 слов·2 минут· loading · loading ·
PostgreSQL
Оглавление

Вступление
#

Работа с массивами в PostgreSQL — это мощный инструмент, который позволяет хранить и обрабатывать наборы данных прямо в базе. Но как правильно посчитать количество элементов в массиве? Разберём два основных способа, которые помогут вам справиться с этой задачей.


1️⃣ Функция array_length
#

Функция array_length позволяет узнать длину массива по определённой размерности. Это особенно полезно, если вы работаете с многомерными массивами.

Пример использования:

select array_length(array[1, 2, 3], 1);

Результат:
3

Здесь мы передаём массив [1, 2, 3] и указываем размерность 1 (поскольку массив одномерный). Функция возвращает количество элементов в массиве.

Для многомерных массивов:

select array_length(array[[1, 2], [3, 4]], 2);

Результат:
2

В этом примере мы работаем с двумерным массивом. Указываем размерность 2, чтобы узнать количество элементов во втором измерении (количество столбцов).


2️⃣ Функция cardinality
#

Если вам нужно посчитать общее количество элементов в массиве, независимо от его размерности, используйте функцию cardinality. Она подходит как для одномерных, так и для многомерных массивов.

Пример использования:

select cardinality(array[1, 2, 3]);

Результат:
3

Здесь функция возвращает общее количество элементов в массиве.

Для многомерных массивов:

select cardinality(array[[1, 2], [3, 4]]);

Результат:
4

В этом случае cardinality считает все элементы массива, независимо от их вложенности.


Какой метод выбрать? 🤔
#

  • array_length — используйте, если вам нужно узнать длину массива по определённой размерности. Это особенно полезно для многомерных массивов.
  • cardinality — подходит, если вам нужно общее количество элементов в массиве, независимо от его структуры.

Полезные ссылки 🔗
#