Longitud de matriz en PostgreSQL

Bilal Shahid 15 febrero 2024
  1. la funcionalidad array_length() de PostgreSQL
  2. la funcionalidad cardinalidad() de PostgreSQL
  3. Use la función array_length() para obtener la longitud de la matriz en PostgreSQL
  4. Use la función cardinalidad () para obtener la longitud de la matriz en PostgreSQL
  5. Conclusión
Longitud de matriz en PostgreSQL

Este artículo describe el cálculo de la longitud de una matriz usando cualquiera de las dos funciones en PostgreSQL: array_length() y cardinality(). Ambas funciones se describen en detalle con varios ejemplos en PostgreSQL.

Las matrices se han utilizado en PostgreSQL como un tipo de datos. Numerosas funcionalidades están asociadas con el uso de matrices.

Todo está cubierto por las funcionalidades admitidas en PostgreSQL, desde calcular la longitud de la matriz hasta buscar un elemento específico de la matriz.

la funcionalidad array_length() de PostgreSQL

Una de las dos funciones esenciales que ayudan en el cálculo de la longitud de un arreglo es la función array_length(). Es la función más básica que calcula la longitud de cualquier matriz usando dos parámetros: la matriz y la dimensión de la matriz correspondiente para la cual se debe calcular la longitud (si la matriz es multidimensional).

Este artículo incluye ejemplos para calcular la longitud de una matriz única y multidimensional utilizando la funcionalidad array_length().

la funcionalidad cardinalidad() de PostgreSQL

La segunda función de PostgreSQL utilizada para calcular la longitud de un arreglo es la función cardinalidad(). Si está ejecutando PostgreSQL versión 9.4 o superior, el software admitirá la funcionalidad de cardinalidad ().

Funciona al recibir un parámetro: la matriz. La función devuelve un valor entero que indica el número total de elementos en la matriz.

A continuación se proporcionan ejemplos del uso de la función cardinalidad().

Use la función array_length() para obtener la longitud de la matriz en PostgreSQL

La función array_length() se puede utilizar para matrices simples y multidimensionales. Los siguientes ejemplos aclaran el funcionamiento de la función.

Ejemplo 1

Aquí está el primer ejemplo que calcula la longitud de una matriz unidimensional:

SELECT array_length(ARRAY[1,2,3], 1);

La consulta anterior generará el siguiente resultado:

Longitud de matriz de PostgreSQL - Ejemplo 1

Ejemplo 2

Demostremos el comportamiento de la función array_length() cuando recibe un array vacío como parámetro:

SELECT array_length(ARRAY[]::int[], 1);

En este caso, puede suponer que la salida es cero; sin embargo, la función devuelve un valor NULL. Esto se debe a que array_length() está diseñado para dar un valor NULL cada vez que recibe una matriz vacía.

El resultado de la consulta es el siguiente:

Longitud de matriz PostgreSQL - Ejemplo 2

Ejemplo 3

La función array_length() muestra un comportamiento similar al anterior cuando recibe una matriz a la que le faltan dimensiones, como se muestra a continuación:

SELECT array_length(ARRAY[1,2,3], 2);

En este caso, la función recibió una matriz de una sola dimensión como parámetro; sin embargo, le pide a la función que devuelva el tamaño de la segunda dimensión de la matriz. Esto produce un valor NULO.

Nota: La función array_length() produce el mismo valor cuando recibe una matriz vacía o una matriz a la que le falta una dimensión. Esto hace que sea un desafío para el usuario detectar el error en caso de que falte una dimensión de matriz.

El resultado del ejemplo se adjunta a continuación:

Longitud de la matriz de PostgreSQL - Ejemplo 3

Ejemplo 4

Analicemos el funcionamiento de la función en una matriz multidimensional. Las dos consultas a continuación proporcionan una visión completa de la función array_length().

Consulta 1:

Una matriz bidimensional se pasa como parámetro a la función array_length(). Se supone que debe calcular la longitud de la primera dimensión:

SELECT array_length(ARRAY[[1, 2], [3, 4], [5, 6]], 1);

La consulta genera el siguiente resultado:

Longitud de la matriz de PostgreSQL - Ejemplo 4 Consulta 1

Consulta 2:

La segunda consulta pasa la misma matriz a la función array_length() como parámetro; sin embargo, solicita la longitud de la segunda dimensión de la matriz:

SELECT array_length(ARRAY[[1, 2], [3, 4], [5, 6]], 2);

La consulta genera el siguiente resultado:

Longitud de la matriz de PostgreSQL - Ejemplo 4 Consulta 2

Nota: Las dos consultas son un excelente ejemplo de comprensión del funcionamiento de la función array_length() con una matriz multidimensional.

Use la función cardinalidad () para obtener la longitud de la matriz en PostgreSQL

La función cardinalidad() se puede utilizar para una matriz única y multidimensional. A continuación se adjuntan algunos ejemplos que aclaran el funcionamiento de la función.

Arreglos idénticos se utilizan como parámetros para la función cardinalidad(). Esto es para ayudarte a comprender el funcionamiento de la función cardinalidad() y, simultáneamente, diferenciar entre los dos métodos para calcular la longitud de la matriz.

Ejemplo 1

Usamos la misma matriz que en el Ejemplo 1 en la sección de la función array_length().

SELECT cardinality(ARRAY[1,2,3]);

La consulta calcula el número total de elementos y muestra el resultado esperado, como se muestra a continuación:

Cardinalidad de PostgreSQL - Ejemplo 1

Ejemplo 2

La función cardinalidad() funciona de manera diferente cuando se pasa como parámetro una matriz vacía. Al contrario de array_length(), la función cardinality() muestra un cero en el caso de una matriz vacía.

SELECT cardinality(ARRAY[]::int[]);

El resultado de la consulta se adjunta a continuación:

Cardinalidad de PostgreSQL - Ejemplo 2

Ejemplo 3

Se ha pasado una matriz unidimensional basada en texto como parámetro a la función cardinalidad(), y funciona como se esperaba:

SELECT cardinality(ARRAY['hello', 'to', 'example', 'three']);

El resultado de la consulta se adjunta a continuación:

Cardinalidad de PostgreSQL - Ejemplo 3

Ejemplo 4

Pasando a la funcionalidad de cardinalidad() con una matriz multidimensional, devuelve el número total de elementos en cada dimensión de la matriz.

SELECT cardinality(ARRAY[[1, 2], [3, 4], [5, 6]]);

La matriz bidimensional tiene un total de seis elementos; por lo tanto, la función cardinalidad() también debería devolver el mismo número, como se muestra:

Cardinalidad de PostgreSQL - Ejemplo 4

Ejemplo 5

Una matriz multidimensional basada en texto funciona de manera similar a una matriz multidimensional basada en enteros.

SELECT cardinality(ARRAY[['hello'], ['there']]);

El número total de elementos lo devuelve la función cardinalidad():

Cardinalidad de PostgreSQL - Ejemplo 5

Conclusión

Tanto las funciones array_length() como cardinality() calculan la longitud de una matriz; sin embargo, ambos funcionan por separado. Se han destacado numerosos ejemplos a lo largo del artículo para mostrar las diferencias entre las dos funciones.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub