PostgreSQL

Como usar a função ARRAY_AGG do PostgreSQL?

Como usar a função ARRAY_AGG do PostgreSQL?
O método de agregação ARRAY_AGG () é um dos métodos usados ​​no PostgreSQL, que pega vários valores de entrada e os concatena em um array, incluindo valores NULL. Ele retorna uma matriz com cada valor do grupo de entrada como uma parte. Para classificar o conjunto de resultados por meio da função ARRAY_AGG do PostgreSQL, você usará a frase ORDER BY. Você também pode usar a cláusula WHERE quando necessário.

Para entender o método ARRAY_Agg () agregado, você deve executar vários exemplos. Para este propósito, abra o shell de linha de comando do PostgreSQL. Se você quiser ligar o outro servidor, faça-o fornecendo seu nome. Caso contrário, deixe o espaço vazio e aperte o botão Enter para pular no banco de dados. Se você quiser usar o banco de dados padrão, e.g., Postgres, deixe como está e pressione Enter; caso contrário, escreva o nome de um banco de dados, e.g., “Teste”, conforme mostrado na imagem abaixo. Se você quiser usar outra porta, escreva, caso contrário, deixe como está e toque em Enter para continuar. Irá pedir-lhe para adicionar o nome de utilizador se quiser mudar para outro nome de utilizador. Adicione o nome de usuário se desejar, caso contrário, basta pressionar “Enter”. No final, você deve fornecer sua senha de usuário atual, para começar a usar a linha de comando usando aquele usuário específico conforme abaixo. Depois de inserir todas as informações necessárias, você está pronto para ir.

Uso de ARRAY_AGG em coluna única:

Considere a tabela “pessoa” no banco de dados “teste” com três colunas; “Id”, “nome” e “idade”. A coluna “id” tem os ids de todas as pessoas. Enquanto o campo 'nome' contém os nomes das pessoas e a coluna 'idade' as idades de todas as pessoas.

>> SELECIONE * DA pessoa;

Dependendo da tabela de overhead, temos que aplicar o método ARRAY_AGG agregado para retornar a lista de array de todos os nomes da tabela por meio da coluna “nome”. Com isso, você deve usar a função ARRAY_AGG () na consulta SELECT para buscar o resultado na forma de um array. Tente a consulta declarada em seu shell de comando e obtenha o resultado. Como você pode ver, temos a coluna de saída “array_agg” abaixo com nomes listados em uma matriz para a mesma consulta.

>> SELECT ARRAY_AGG (nome) FROM pessoa;

Uso de ARRAY_AGG em várias colunas com cláusula ORDER BY:

Exemplo 01:

Aplicando a função ARRAY_AGG a várias colunas ao usar a cláusula ORDER BY, considere a mesma tabela “pessoa” dentro do banco de dados “teste” com três colunas; “Id”, “nome” e “idade”. Neste exemplo, usaremos a cláusula GROUP BY.

>> SELECIONE * DA pessoa;

Temos concatenado o resultado da consulta SELECT em uma lista de matriz enquanto usamos as duas colunas "nome" e "idade". Neste exemplo, usamos o espaço como um caractere especial que foi usado para concatenar ambas as colunas até agora. Por outro lado, buscamos a coluna “id” separadamente. O resultado da matriz concatenada será mostrado em uma coluna “persondata” em tempo de execução. O conjunto de resultados será primeiro agrupado pelo "id" da pessoa e classificado em ordem crescente de campo "id". Vamos tentar o comando abaixo no shell e ver os resultados você mesmo. Você pode ver que temos uma matriz separada para cada valor concatenado por idade de nome na imagem abaixo.

>> SELECT id, ARRAY_AGG (name || "|| age) como persondata FROM pessoa GROUP BY id ORDER BY id;



Exemplo 02:

Considere uma tabela “Funcionário” recém-criada dentro do “teste” do banco de dados com cinco colunas; “Id”, “nome”, “salário”, “idade” e “email”. A tabela armazena todos os dados sobre os 5 funcionários que trabalham em uma empresa. Neste exemplo, usaremos o caractere especial '-' para concatenar dois campos em vez de usar espaço ao utilizar as cláusulas GROUP BY e ORDER BY.

>> SELECT * FROM Employee;

Nós concatenamos os dados de duas colunas, “nome” e “e-mail” em uma matriz enquanto usamos '-' entre eles. Da mesma forma que antes, extraímos a coluna "id" distintamente. Os resultados da coluna concatenada serão mostrados como "emp" em tempo de execução. O conjunto de resultados será montado primeiro pelo "id" da pessoa e, posteriormente, será organizado em ordem crescente da coluna "id". Vamos tentar um comando muito semelhante no shell com pequenas alterações e ver as consequências. A partir do resultado abaixo, você adquiriu uma matriz distinta para cada valor concatenado nome-e-mail apresentado na imagem, enquanto o sinal '-' é usado em todos os valores.

>> SELECT id, ARRAY_AGG (nome || '-' || email) AS emp FROM Employee GROUP BY id ORDER BY id;

Uso de ARRAY_AGG em várias colunas sem cláusula ORDER BY:

Você também pode tentar o método ARRAY_AGG em qualquer tabela sem usar as cláusulas ORDER BY e GROUP BY. Suponha que uma tabela “ator” recém-criada em seu “teste” de banco de dados antigo tenha três colunas; “Id”, “fname” e “lname”. A tabela contém dados sobre os nomes e sobrenomes do ator junto com seus ids.

>> SELECT * FROM ator;

Então, concatene as duas colunas “fname” e “lname” em uma lista de array enquanto usa o espaço entre eles, da mesma forma que você fez nos dois últimos exemplos. Não removemos a coluna 'id' distintamente e estamos usando a função ARRAY_AGG na consulta SELECT. A coluna concatenada da matriz resultante será apresentada como "atores". Tente a consulta abaixo indicada no shell de comando e tenha uma visão geral do array resultante. Buscamos uma única matriz com o valor concatenado nome-e-mail apresentado, separado do resultado por uma vírgula.

Conclusão:

Finalmente, você está quase terminando de executar a maioria dos exemplos necessários para compreender o método de agregação ARRAY_AGG. Experimente mais deles para melhor compreensão e conhecimento.

Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...
Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...
Como instalar e jogar Doom no Linux
Introdução ao Doom A série Doom teve origem nos anos 90 após o lançamento do Doom original. Foi um sucesso instantâneo e, a partir desse momento, a sé...