Função LISTAGG: Agrupamento de dados no Oracle com exemplos ARTIGO EXCLUSIVO  

Função LISTAGG

A função LISTAGG (list aggregate | lista agregada), é uma função SQL de grupo específica do Oracle, que agrupa os dados na mesma linha dentro de uma instrução SELECT, você pode utilizá-la sozinha para produzir conjuntos de dados agrupados por linhas simples, ou em conjunto com a função GROUP BY, abaixo alguns exemplos.

Imagine um SELECT comum na tabela EMPLOYEES.

Sql_1

Agora vamos montar um relatório que liste em uma única linha, o nome completo dos empregados no padrão americano (sobrenome, nome) separado por ‘; ’ juntamente com a data de contratação do empregado mais antigo. Neste caso ficaria assim.

Sql_2

LISTAGG + GROUP BY

Como falamos no inicio do artigo, também podemos utilizar a função LISTAGG juntamente com a função GROUP BY. Imagine que precisamos montar um relatório com o ID dos departamentos em uma coluna e na coluna seguinte o nome dos empregados separados por ‘;’.

Sql_3

LISTAGG + OVER

Ao utilizar a função LISTAGG juntamente com a função OVER, é possível criar relatórios analíticos com grupos e subgrupos de dados. Imagine o cenário onde você precise criar um relatório onde mostre o código do departamento, a data de contratação de todos os empregados que foram contratados antes de 01 de setembro de 2003, além disso, é preciso criar uma terceira coluna que mostre uma lista de todos os outros funcionários que também foram contratados antes de 01 de setembro de 2003 e pertencem ao mesmo departamento.

Sql_4

É isso aí, esta função eu particularmente não conhecia, mas alguns dias atrás lendo a Oracle Magazine, encontrei um artigo que falava desta função juntamente com outras e achei interessante dar uma estudada nesta função, fiz isso e tenho o enorme prazer em compartilhar aqui o que acabei aprendendo.

Forte Abraço e até a próxima!

O que você achou disso?

Clique nas estrelas

Média da classificação / 5. Número de votos:

Nenhum voto até agora! Seja o primeiro a avaliar este post.

Lamentamos que este post não tenha sido útil para você!

Vamos melhorar este post!

Diga-nos, como podemos melhorar este post?

Deixe um comentário

plugins premium WordPress