Artigo SQL Magazine 55 - Funções SQL para agregação de dados

Artigo publicado Revista SQL Magazine 55.

Esse artigo faz parte da revista SQL Magazine edição 55. Clique aqui para ler todos os artigos desta edição

Clique aqui para ler esse editorial em PDF

Funções SQL para agregação de dados

 

Por mais óbvio que possa parecer, é sempre bom lembrar: nós que trabalhamos com TI temos que ter na cabeça que bancos de dados não servem apenas para armazenar dados.

Armazenar é um meio e não o fim. O fim é informar, em outras palavras, recuperar dados e tratá-los para conseguirmos informações relevantes.

Muitas vezes ficamos tão entretidos na coleta de dados que simplesmente não nos damos conta da importância da análise destes.

A linguagem SQL oferece uma série de recursos para sumarização de dados, entre eles as funções de agregação. Estas funções são a base de toda a análise de dados que fazemos usando a linguagem SQL.

 

Funções de Agregação X Bancos de Dados

Como dissemos no artigo sobre funções T-SQL (SQL Magazine 49), a linguagem SQL é usada em todos os principais bancos de dados relacionais disponíveis no mercado. Com ligeiras variações, a mesma sentença SQL é executada nos mais variados produtos, tais como SQL Server, Oracle, DB2, Firebird, MySQL, etc. Isso porque estes produtos respeitam um padrão internacional estabelecido, conhecido como ANSI SQL.

No que diz respeito às funções de agregação, as principais funções são suportadas em praticamente todos os bancos de dados relacionais. É verdade que alguns bancos de dados trazem funções complementares, que são extensões ao padrão ANSI SQL. Mas vamos nos concentrar nas funções padrão.

Nosso estudo foi desenvolvido usando o banco de dados Firebird 2.0.1 SuperServer, mas todas as sentenças listadas aqui são suportadas nos principais produtos concorrentes.

 

O banco de dados estudado

Para este trabalho, criamos no Firebird um banco de dados chamado “Farmaceutico”, que armazena informações de demanda de produtos farmacêuticos. O diagrama desta base é exibido na Figura 1.

 

Figura 1. Diagrama do banco de dados “Farmaceutico”

 

Na verdade, quem já leu algum dos meus artigos em números anteriores da SQL Magazine, perceberá que migramos esta base do SQL Server para o Firebird. Este é um processo simples, mas ele foge do nosso escopo. Portanto não vamos abordar este assunto no presente artigo.

 

Declarações SQL para agregação

Por simplificação, podemos pensar que as funções de agregação estão sempre associadas ao uso da cláusula GROUP BY.

Existe um cenário em que podemos usar estas funções sem a cláusula GROUP BY, mas é uma situação de exceção: quando desejamos ter uma métrica baseada em todos os registros da tabela. Por exemplo: o maior valor de um campo dentre todos os registros da tabela.

O cenário mais comum é usarmos funções de agregação para obtermos métricas (contagem, máximo, mínimo, média) para cada valor existente em um dos campos da tabela. E, neste caso, usaremos o GROUP BY.

A Listagem 1 mostra uma sentença SQL para retornar todos os produtos que tiveram alguma transação de demanda durante o ano de 2006. O GROUP BY foi usado para listarmos todos os nomes de produto, sem repetição.

 

" [...] continue lendo...

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados