Postgres String agg

Postgres String agg
No PostgreSQL, existem funções agregadas integradas, incluindo Sum, Count, Array_Agg (), String_Agg (), Avg (), Max, Min etc. O objetivo de usar funções agregadas em seu código é determinar a saída de um conjunto de valores. Neste artigo, discutiremos a função String_Agg (). O string_agg () é uma função agregada composta por dois parâmetros; O primeiro parâmetro pega valores de entrada e concatena os valores em strings. No segundo parâmetro, você especifica o delimitador que separa o primeiro parâmetro.

A função string_agg () e array_agg () funcionando é o mesmo, exceto que string_agg () é a função agregada que retorna o resultado como tipo de string enquanto a função Array_agg () retorna o tipo de matriz como resultados.

Este artigo é um guia completo para explicar a função agregada string_agg () no PostgreSQL. Você estará testemunhando vários exemplos da função string_agg () no PostgreSQL com uma explicação detalhada. A sintaxe a seguir ajudará você a obter o entendimento básico de usar a função String agg () no PostgreSQL:

String_agg (valor, delimitador)

Na sintaxe acima,

  • Primeiro, escreva a função string_agg () com colchetes (). A função sring_agg () leva dois parâmetros.
  • No primeiro parâmetro, o 'valor' é qualquer valor de texto que seja um caractere de string. Se você inserir qualquer outro tipo de dados que não seja um caractere de string, não aceitaria esse valor como entrada.
  • No segundo parâmetro, o 'delimitador' separa as seqüências concatenadas.

O string_agg () também leva a ordem por cláusula na declaração. É opcional se você deseja que a saída esteja em uma ordem específica, você pode usar a cláusula de ordem por ordem com a função string_agg (). Abaixo está um exemplo de uso da cláusula da Ordem By na declaração:

String_agg (valor, delimiter [order_by_clause])

Você pode adicionar a condição especificada no 'order_by_clause' usando a ordem por função na instrução como essa:

Ordem por Value1 ASC | Desc,…

A ordem por função pode ser declarada como em forma ascendente ou descendente na declaração de acordo com o valor (valor1) escrito.

Você também pode usar o grupo por cláusula nas declarações; Diz as linhas que são agrupadas na tabela.

Exemplos de função string_agg () no PostgreSQL:

Para usar a função string_agg () nas declarações que você precisa primeiro para criar uma tabela de amostra para exemplos no PostgreSQL. Abaixo está o código para criar uma tabela de amostra no PostgreSQL:

Crie jogadores de mesa (
Player_name Texto ,
Team_Name Text ,
Player_positon Texto
);

A sintaxe acima criará uma tabela no banco de dados com o nome "jogadores" e colunas como player_name, team_name e player_position. O PostgreSQL fornece a seguinte mensagem:

Para verificar se a tabela é criada com as colunas especificadas, execute a consulta selecionada abaixo:

Selecione * de "jogadores";

Agora, insira alguns valores na tabela "jogadores" com o inser no comando:

Insira em "jogadores"
Valores ('Chris', 'Índias Ocidentais', 'Batsman'), ('Shannon', 'Índias Ocidentais', 'Bowler'),
('Bravo', 'Índias Ocidentais', 'Batsman');
Insira em "jogadores"
Valores ('James', 'Nova Zelândia', 'All Rounder');
Insira em "jogadores"

Valores ('Shaheen', 'Paquistão', 'Bowler'), ('Sarfaraz', 'Paquistão', 'Keeper Wicket');

Os valores acima são inseridos na tabela "jogadores" usando a inserção e o comando valores nas instruções, e podemos confirmar que, executando a instrução SELECT abaixo:

Selecione * de "jogadores";

Os valores que foram especificados na inserção no comando agora são executados com sucesso e podem ser vistos na saída acima.

Gerando valores separados por vírgula usando String_agg () no PostgreSQL:

Para gerar uma lista de valores separados por vírgulas, usaremos a função string_agg () na instrução. Abaixo está a declaração para gerar valores separados por vírgulas:

Selecione "Team_Name", String_agg ("Player_name", ',')
Do grupo "jogadores" por "team_name";

Usamos a função string_agg () para separar a coluna "player_name" com vírgulas na instrução SELECT. No primeiro parâmetro do string_agg (), a expressão é definida que queremos separar; No segundo parâmetro, usamos vírgula ',' como delimitador ou separador para separar os valores. Usamos o grupo por comando para dividir as fileiras em relação à coluna "Team_name". A saída para a sintaxe acima é exibida como:

Os valores de "player_name" são concatenados por vírgulas na saída acima e exibidos com o "Team_name".

Separando várias colunas com vírgulas usando string_agg () no postgreSQL:

Podemos usar mais de uma função string_agg () na instrução Single Select. O exemplo abaixo mostra a demonstração disso:

Selecione "Team_Name", String_agg ("Player_name", ','), String_agg ("Player_positon", ',')
Do grupo "jogadores" por "team_name";

Eu usei duas funções string_agg () em duas colunas diferentes para concatenar os valores das colunas por vírgula-separadores. A declaração acima mostra os seguintes resultados:

É visível que os valores de duas colunas agora sejam separados por vírgulas e gerados a lista.

Não sabemos os nomes das colunas na saída acima que eles são mencionados como nomes "string_agg" padrão, podemos especificar os nomes de colunas usando como função na instrução acima. Esta é a sintaxe para usar como função e especificação de nomes na coluna:

Selecione "Team_Name", String_agg ("Player_name", ',') como Players_name,
String_agg ("Player_positon", ',') como Players_Positions
Do grupo "jogadores" por "team_name";

Na declaração acima, com a função string_agg (), especifiquei a palavra -chave AS com o nome desejado, exibindo um nome na coluna. Podemos ver na saída abaixo:

As colunas que foram primeiro por padrão nomeadas como "string_agg" agora são nomeadas como "players_name" e "players_positions", respectivamente.

Conclusão:

Aprendemos neste artigo sobre a função string_agg () no PostgreSQL, sua definição, seu uso e implementação. A função string_agg () pode ser usada para gerar valores separados por vírgula com colunas únicas e múltiplas. A palavra -chave AS pode ser usada para exibir os nomes específicos para colunas selecionadas.