Como usar a função PostGresql Array_Agg?

Como usar a função PostGresql Array_Agg?
O método agregado Array_Agg () é um dos métodos usados ​​no PostgreSQL, que leva vários valores de entrada e os concatena em uma matriz, incluindo valores nulos. Ele retorna uma matriz com todos os valores do grupo de entrada como uma parte. Para classificar o conjunto de resultados através da função PostGresql Array_Agg, você estará usando o pedido por frase. Você também pode usar a cláusula WHERE quando necessário.

Para entender o método agregado Array_Agg (), você precisa executar vários exemplos. Para esse fim, abra o shell da linha de comando postgreSQL. Se você deseja ligar o outro servidor, faça -o fornecendo seu nome. Caso contrário, deixe o espaço vazio e pressione o botão Enter para pular no banco de dados. Se você quiser usar o banco de dados padrão, e.g., Postgres, então deixe -o como está e pressione Enter; Caso contrário, escreva o nome de um banco de dados, e.g., "Teste", como mostrado na imagem abaixo. Se você quiser usar outra porta, escreva -a, caso contrário, deixe -a e toque em Enter para continuar. Ele pedirá que você adicione o nome de usuário se você quiser mudar para outro nome de usuário. Adicione o nome de usuário, se quiser, caso contrário, basta pressionar "Enter". No final, você deve fornecer sua senha atual de usuário, para começar a usar a linha de comando usando esse usuário em particular como abaixo. Após entradas bem -sucedidas de todas as informações necessárias, você está pronto para ir.

Uso de Array_agg na coluna única:

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

>> selecione * da pessoa;

Dependendo da tabela aérea, temos que aplicar o método agregado Array_Agg para retornar a lista de matriz de todos os nomes da tabela via coluna "Nome". Com isso, você deve usar a função Array_agg () na consulta selecionada para buscar o resultado na forma de uma matriz. Experimente a consulta declarada em seu shell de comando e obtenha o resultado. Como você pode ver, temos a coluna de saída abaixo "Array_agg" com nomes listados em uma matriz para a mesma consulta.

>> selecione Array_agg (nome) da pessoa;

Uso de Array_agg em várias colunas com a cláusula Order by:

Exemplo 01:

Aplicando a função Array_Agg a várias colunas enquanto estiver usando a cláusula Ordem By, considere a mesma tabela "pessoa" dentro do banco de dados "teste" com três colunas; “ID”, “Nome” e “Age”. Neste exemplo, usaremos o grupo por cláusula.

>> selecione * da pessoa;

Temos concatenando o resultado da consulta selecionada em uma lista de matrizes enquanto usamos as duas colunas "nome" e "idade". Neste exemplo, estamos usando o espaço como um personagem especial que tem sido usado para concatenar essas duas colunas até agora. Por outro lado, estamos buscando a coluna "ID" separadamente. O resultado da matriz concatenada será mostrado em uma coluna "Persondata" no tempo de execução. O conjunto de resultados será agrupado pela primeira vez pelo "ID" da pessoa e classificado em ordem crescente de "ID do campo". Vamos tentar o comando abaixo no shell e ver os resultados. Você pode ver que temos uma matriz separada para todos os nomes de valor concatenado na imagem abaixo.

>> Selecione ID, Array_Agg (nome || "| AGE) como Persondata do Grupo Pessoa por Ordem de Id por ID;



Exemplo 02:

Considere uma tabela recém -criada "funcionário" no banco de dados "teste" 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 personagem especial '-' para concatenar dois campos em vez de usar o espaço enquanto utiliza o grupo e ordenam por cláusula.

>> selecione * do funcionário;

Concatenamos os dados de duas colunas, "nome" e "email" em uma matriz enquanto usamos '-' entre eles. O mesmo de antes, extraímos a coluna "id" distintamente. Os resultados da coluna concatenada serão mostrados como "EMP" no tempo de execução. O conjunto de resultados será montado pela primeira vez pelo "id" da pessoa e depois será organizado em ordem crescente da coluna "ID". Vamos tentar um comando muito semelhante no shell com pequenas mudanças e ver as consequências. A partir do resultado abaixo, você adquiriu uma matriz distinta para todos os nomes-email concatenados, valor apresentado na imagem enquanto o sinal '-' é usado em todos os valores.

>> Selecione ID, Array_Agg (Nome || '-' || Email) como empurl em grupo de funcionários por ordem de identificação por ID;

Uso de Array_agg em várias colunas sem encomenda por cláusula:

Você também pode experimentar o método Array_Agg em qualquer tabela sem usar o pedido por cláusula e grupo por grupo. Suponha que uma tabela recém -criada “ator” no seu banco de dados antigo “teste” com três colunas; "Id", "fname" e "lname". A tabela contém dados sobre os primeiros nomes e sobrenomes do ator junto com seus IDs.

>> selecione * do ator;

Então, concatenar as duas colunas "fname" e "lname" em uma lista de matrizes enquanto usava o espaço entre elas, o mesmo que você fez nos últimos dois exemplos. Não retiramos a coluna 'ID' distintamente Andee está usando a função Array_Agg dentro da consulta selecionada. A coluna concatenada da matriz resultante será apresentada como "atores". Experimente a consulta abaixo do lugar no shell de comando e tenha um vislumbre da matriz resultante. Fechamos uma única matriz com o valor concatenado de nomes apresentado, separado por uma vírgula do resultado.

Conclusão:

Por fim, você quase terminou de executar a maioria dos exemplos necessários para entender o método agregado Array_agg. Experimente mais deles para obter melhor compreensão e conhecimento.