Como encontrar o comprimento da matriz no PostgreSQL?

Como encontrar o comprimento da matriz no PostgreSQL?
PostgreSQL adicionou a função de "Array_length" no 8.4 versão. O "Array_length" retorna o comprimento de uma dimensão da matriz. Matrizes são muito úteis para agregação e armazenamento de dados para a menor listagem. O PostgreSQL permite criar matrizes de qualquer tipo de dados, incluindo tipo interno, um tipo definido pelo usuário e matrizes multidimensionais também, mas o PostgreSQL não permite que uma matriz de domínios seja suportada.

Existem outros tipos de dados também se você estiver criando uma tabela usando pgadmin. Neste artigo, você aprenderá sobre como encontrar uma duração de matriz no PostgreSQL no Windows 10 com a ajuda de alguns exemplos.

Sintaxe

A sintaxe para encontrar um comprimento de matriz é:

# Array_length (column_name, int)

Na sintaxe acima, o "Array_length" retorna o comprimento do seu "column_name" desejado, que é escrito em primeiro lugar. O "int" em segundo lugar menciona qual dimensão da matriz está sendo medida.

Array_length no PostgreSQL

Para encontrar um comprimento de matriz, você deve criar uma tabela no PostgreSQL usando a ferramenta PGadmin ou o shell SQL. Eu criei uma tabela chamada "Mercearias", composta por três colunas. A sintaxe para criar uma tabela é:

# Criar mantimentos de tabela ("ID" inteiro não nulo, "Person" Personagem Variando (100), "Itens" Personagem Variando [255], Chave Primária ("ID"));

Na consulta acima, como o nome sugere, "Create Tabela" cria a tabela com o nome de "mantimentos", que é composto por três colunas diferentes chamadas "id", "pessoa" e "itens". Com cada nome de coluna, seus tipos de dados são declarados, os "itens" são declarados como um tipo de matriz usando [], o que indica que queremos o tipo de dados como uma matriz. Aqui "ID" é declarado como a chave primária em uma tabela. Depois de criar a tabela “mantimentos”, os dados para cada coluna são inseridos de acordo com seus respectivos tipos de dados. A tabela de "compras" agora se parece com isso

Na coluna "ID", cada pessoa recebe um número e nome na coluna "Pessoa". Na coluna "itens", esses itens são mencionados que cada pessoa comprou. Todos os itens são unidimensionais, exceto aquele em que ID = 7, é expresso como uma matriz multidimensional.

Agora que a tabela é criada, vamos executar alguns exemplos para encontrar o comprimento de uma matriz na tabela "compras".

# Selecione "ID", "Pessoa", "Itens", Array_length ("Itens", 1) de "Mercearias";

Na consulta acima, a instrução "Select" está selecionando todas as colunas mencionadas, incluindo "id", "pessoa", "itens". A função "Array_length" que está pegando "itens" de dois parâmetros e "1" significa que deseja medir o comprimento da coluna "itens" e "1" descreve a dimensão de que a matriz está sendo medida. A consulta acima mostra a seguinte saída:

A saída acima mostra o comprimento da matriz de cada item que uma pessoa comprou. Como podemos ver que os dados não estão em uma ordem específica, o comprimento de 3 itens é exibido primeiro e 1 item é exibido no final, porque a instrução SELECT retorna a coluna de maneira não classificada.

Array_length usando a ordem por PostgreSQL

No exemplo anterior, vimos o comprimento de uma matriz no resultado não foi resolvido. Podemos classificar a coluna facilmente usando a cláusula "Order by" em ordem descendente ou crescente executando a seguinte consulta:

# Selecione "ID", "Pessoa", "Itens", Array_length ("Itens", 1) de "Grocerias" Ordem por Array_length ("Itens", 1) Desc;

Na consulta acima, a cláusula "Ordem By" classificou as linhas em ordem decrescente, conforme exibido na saída abaixo:

Pode -se ver claramente que a cláusula "Ordem By" classificou a coluna "Item" em ordem decrescente, como mencionamos na consulta. Da mesma forma, também podemos classificar o comprimento da coluna "itens" em ordem ascendente, mas desta vez eu usarei um alias para a coluna "Array_length" para que eu não precise repeti -la com a cláusula "Ordem by". A consulta para classificar a coluna em ordem crescente é:

# Selecione "ID", "Pessoa", "Itens", Array_length ("Itens", 1) len_ascending from "Groceries" Ordem por len_ascending ASC;

Na consulta acima, declarei o pseudônimo como "len_ascending" e a coluna é classificada em ordem crescente que fornece a saída abaixo:

Na saída acima, o alias usado pode ser visto e a coluna é classificada em ordem crescente usando a cláusula "Ordem por" e a função "ASC" na consulta.

Retornando o máximo de Array_length em PostgreSQL

Se você deseja apenas o comprimento máximo de uma matriz em uma coluna, pode limitar o resultado usando a cláusula "limite" em sua consulta com a cláusula "Order By". A cláusula "limite" retornará apenas o número de linhas que você mencionou. A consulta para retornar apenas o comprimento máximo da matriz no PostgreSQL é:

# Selecione "ID", "Pessoa", "Itens", Array_length ("Itens", 1) de "Grocerias" Ordem por Array_length ("Itens", 1) Desc Limit 1;

Nesta consulta, a cláusula "Ordem por" e "Limit" retorna o comprimento máximo da matriz na coluna "itens". A cláusula “Order By” e a função “DEC” estão retornando o valor mais alto da coluna “itens” e a cláusula “Limit” está retornando apenas a 1 linha, conforme mencionado em uma consulta, e o resultado é exibido como:

A pessoa que comprou o número máximo de itens é "Catherine" com um comprimento de matriz de 6.

Você também pode encontrar a pessoa com os itens mínimos de supermercado usando a função "ASC" em vez da função "Desc" e também pode limitar as linhas a mais de 1.

Array_length usando onde a cláusula

Se você deseja encontrar o comprimento da matriz de um item de pessoa em particular, a cláusula "onde" ajudará você a encontrar esse registro. Cláusula "Where" filtra as linhas de acordo com a condição que você definiu. Abaixo está a consulta para "Array_length" usando a cláusula "Where":

# Selecione "ID", "Pessoa", "Itens", Array_length ("Itens", 1) de "Mercearias" onde "Pessoa" = 'Barry';

Na consulta acima, especifiquei a condição que encontra o comprimento da matriz da tabela “mantimentos”, onde o nome da pessoa é Barry, que fornece o seguinte resultado:

A saída mostra que Barry comprou dois itens que apareceram na última coluna "Array_length".

Conclusão

Discutimos como podemos encontrar a duração de uma matriz no PostgreSQL utilizando exemplos diferentes. PostgreSQL torna menos complicado o uso de matrizes em uma consulta e encontrar o comprimento de uma coluna usando apenas a sintaxe simples Array_length (column_name, int).

O "Array_length" nesta sintaxe retorna o comprimento de uma matriz do primeiro argumento i.e., column_name, e "int" diz a dimensão da matriz medida. Resumindo, o comprimento da matriz pode ser medido facilmente com diferentes funções e cláusulas.