Trabalhando com funções de agregação em SQL – Parte 2

Neste artigo serão abordadas algumas funções de agregação presentes na SQL para a extração deste tipo de informação. A correta utilização destas funções auxilia na tomada de decisão mais acertada.

Demais posts desta série:
Trabalhando com funções de agregação em SQL – Parte 1
Artigo do tipo Exemplos Práticos
Recursos especiais neste artigo:
Artigo no estilo Curso Online.

Trabalhando com funções de agregação em SQL – Parte 2
Armazenar informações em Sistemas de Gerenciamento de Banco de Dados já, há muito tempo, passou a ser parte integrante de todas as empresas. Mas a maneira com a qual as empresas utilizam estes dados armazenados é que passa a ser um diferencial competitivo.

Para conseguir o benefício de utilizar os dados armazenados de maneira inteligente, a SQL oferece uma gama de funções que permitem a geração de relatórios com dados consolidados ou sumarizados e também a extração de dados estatísticos com base nas informações armazenadas.

Neste segundo artigo desta série, serão abordadas algumas funções de agregação presentes na SQL para a extração deste tipo de informação. A correta utilização destas funções, além de auxiliar em uma tomada de decisão mais acertada, permite a manutenção de um bom desempenho do SGBDR.

Em que situação o tema é útil
Em diversos momentos no ciclo de vida de um banco de dados pode ser necessário extrair dados de forma a criar relatórios com informações sumarizadas ou com dados estatísticos para auxiliar na tomada de decisão de negócios. Para este tipo de consulta é que o tema deste artigo se mostra de grande utilidade.

No primeiro artigo desta série abordamos as seguintes funções de agregação:

· AVG e SUM;

· CORR;

· COUNT;

· COUNT(*);

· COVAR_POP;

· COVAR_SAMP;

· CUME_DIST.

Porém, como mostramos no artigo anterior, a lista de funções de agregação não é pequena. Neste artigo continuaremos apresentando as outra funções de agregação através de exemplos práticos que podemos utilizar no dia-a-dia de sua aplicação.

As funções de agregação abordadas neste artigo são:

· DENSE_RANK;

· MIN e MAX;

· PERCENT_RANK;

· PERCENTILE_CONT;

· PERCENTILE_DISC;

· RANK;

· Família REGR;

· STDDEV_POP;

· STDDEV_SAMP;

· VAR_POP;

· VAR_SAMP.

Vejamos a partir de agora, através de exemplos, cada uma dessas funções de agregação. A sintaxe geral de utilização de funções de agregação é:

função_de_agregação( [ ALL | DISTINCT ] expressão)

É muito importante salientar que todas as funções de agregação, exceto a função COUNT(*), irão desconsiderar colunas com o valor NULL ao calcular o resultado.

A função DENSE_RANK

A função DENSE_RANK calcula uma classificação em um grupo para uma linha hipotética fornecida. Ranqueamentos nunca são ignorados, mesmo quando um grupo contém linhas que sejam classificados de forma idêntica.

A sintaxe do padrão ANSI SQL é:

DENSE_RANK(lista_de_valores) WITHIN GROUP (ORDER BY lista_de_ordenação)

lista_de_valores = expressão [,expressão...]

lista_de_ordenação = item_de_ordenação [,item_de_ordenação...]

item_de_ordenação = expressão [ASC|DESC] [NULLS FIRST|NULLS LAST].

O SGBDR Oracle suporta totalmente esta sintaxe padrão ANSI SQL.

Os SGBDRs DB2, MySQL, PostgreSQL e SQL Server não suportam esta sintaxe, no entanto, o DB2 suporta o DENSE_RANK como uma função analítica.

A Listagem 1 apresenta um exemplo da utilização da função de agregação DENSE_RANK.

Listagem 1. Exemplo de utilização da função de agregação DENSE_RANK. 01. SQL> SELECT AMOUNT_SOLD, DENSE_RANK(4, 33.52) WITHIN GROUP (ORDER BY CHANNEL_ID, AMOUNT_SOLD) AS DENSE_RANK 02. 2 FROM SALES 03. 3 WHERE PROD_ID=136 04. 4 GROUP BY AMOUNT_SOLD; 05. 06. AMOUNT_SOLD DENSE_RANK 07. ----------- ---------- 08. 30,87 2 09. 33,52 2 10. 36,58 3 11. 36,71 2 12. 37,1 3 13. 42,15 2 14. 46,19 3 15. 46,35 2 16. 46,84 3 17. 18. 9 rows selected. 19. 20. Elapsed: 00:00:00.01"

[...] continue lendo...

Artigos relacionados