No entanto, o PostgreSQL não oferece suporte nativo à função group_concat() ao contrário do MySQL. Portanto, este tutorial explora como podemos obter uma funcionalidade semelhante usando a função string_agg().
Função String_Agg do PostgreSQL
A função string_agg no PostgreSQL nos permite concatenar os valores de várias linhas em uma única string e é separada pelo parâmetro especificado.
O uso da sintaxe da função é demonstrado a seguir:
SELECT string_agg(column_name, delimitador)
FROM table_name
ONDE condições
GROUP BY agrupamento_colunas;
A seguinte sintaxe é expressa da seguinte forma:
nome da coluna – Especifica o nome da coluna cuja coluna desejamos concatenar.
delimitador – Define o caractere separador que é utilizado ao unir os valores de entrada.
Nome da tabela – A tabela de destino que contém os dados.
agrupamento_colunas – Especifica as colunas que são usadas para agrupar os dados especificados.
Exemplo de Função PostgreSQL String_Agg
Vamos dar um exemplo mais prático para ilustrar como a função funciona. Suponha que temos uma tabela que contém as informações do aluno. A tabela contém três colunas: id, nome e assunto.
Se quisermos concatenar os nomes dos alunos que se matricularam na mesma disciplina, podemos utilizar a função string_agg.
SELECT assunto, string_agg ( nome, ',' ) Alunos ASDE alunos
GRUPO POR assunto;
Depois de executar a consulta fornecida, ela deve retornar um conjunto de resultados com duas colunas principais: o assunto e os alunos. Os alunos contêm os nomes concatenados dos alunos para cada disciplina e são separados por vírgula.
OBSERVAÇÃO : a função string_agg classifica os valores concatenados por padrão. Você pode adicionar uma cláusula ORDER BY dentro da função string_agg para manter a ordem original.
Aí está! Um método direto e eficiente de obter uma funcionalidade semelhante fornecida pela função group_concat() no PostgreSQL.
Conclusão
Neste tutorial breve, mas eficaz, aprendemos como usar a função string_agg no PostgreSQL para obter uma funcionalidade semelhante fornecida pela função group_concat() no MySQL.