Reporting Aggregated Data Using the Group Functions

Nos posts anteriores vimos como trabalhar com funções que fazem operações para cada linha no banco de dados. Agora vemos como funções podem trabalhar em grupos de linhas de um vez só, fazendo cálculos matemáticos e etc. Faremos isso pelo uso das cláusulas GROUP BY e HAVING com as determinadas funções de grupo.

Resumindo: as funções de grupo opera em várias linhas ao mesmo tempo no banco de dados e retornam apenas uma linha como resultado. Vejamos algumas funções de grupo.

COUNT

Essa função como o nome já deve ter dado a entender o que ela faz, ela soma a quantidade de linhas. Bem simples mas temos algumas opções ao suar essa função. Podemos contar todas as linhas do banco de dados, inclusive as linhas com todos os valores null, ao utilizarmos o “*”, ou seja COUNT(*). E podemos utilizar por exemplo o nome de uma coluna da tabela, irá contar todos os valores não nulos e repetidos, caso utilizemos a palavra reservada DISTINCT, irá então ignorar os valores repetidos.

COUNT

COUNT

SUM, MIN, MAX

Vamos ver agora três funções que já da ideia do que faz. Somar, mínimo e máximo. SUM aceita somente, logicamente, valores numéricos, retornando apenas um resultado que também é numérico, mas no caso de MIN e MAX, aceita tanto valores numéricos como parâmetro como também datas e varchar. Vamos ver um exemplo que fica mais fácil

SUM, MIN, MAX

SUM, MIN, MAX

AVG

Com esta função podemos tirar a médica de uma determinada coluna, fazendo com que se some todos os valores não nulos dividindo pela quantidade de colunas não nulas da tabela. Retornando assim um valor numérico.

MEDIAN

Como o próprio nome da função já diz, a função retorna o valor mediano de uma determinada coluna. Se o número for impar, será exatamente o valor do meio das colunas, por exemplo: se tiver 5 colunas o valor retornado sera o terceiro valor. Lembrando que antes de retornar o valor mediano ele ordena os valores da coluna. Caso a quantidade de valores seja par, então será feita uma médias dos valores do meio. Um exemplo disso seria caso fosse 4 linhas, o valor retornado seria a média do segundo e terceiro valor.

RANK

Essa função pode parecer um pouco confusa a primeiro momento, mas na verdade é bem simples. Ela aceita dois pares de parâmetros como argumentos, o par precisa ter um ou mais valores, e cada par deve ser do mesmo tipo de dados. Essa função aceita dados numéricos e de carácter. Essa função retorna a posição em que se o primeiro parâmetro fosse inserido na tabela e fosse ordenada. No exemplo abaixo podemos ver que usamos a coluna salary e um número 4000. Nos informando que se o salario 4000 fosse inserido na tabela e ordenando de maneira crescente a tabela, ele ficaria na linha 43, nos dizendo que existem 42 linhas com salario menor que 4000.

RANK

RANK

VARIANCE, STDDEV

Vamos ver agora algumas funções estatísticas. A primeira é referente a variância e a segunda ao desvio padrão.

VARIANCE, STDDEV

VARIANCE, STDDEV

FIRST, LAST

Essa função pode complicar um pouco para entender, mas vou tentar explicar o mais simples e direto possível. Essa função receber dois argumentos e tem dois modos, FIRST e LAST. Caso seja utilizado FIRST, iremos ordenar a tabela de maneira crescente e pegar o primeiro valor da coluna escolhida, ou seja: o menor valor. Depois iremos utilizar nessas linhas que tenham apenas esse menor valor alguma outra função de grupo que vimos anteriormente. Vejamos um exemplo para ficar mais claro:

FIRST, LAST

FIRST, LAST

O que acabamos de fazer nessa imagem acima foi o seguinte: Ordenamos em ordem crescente a tabela pelos valores de commission_pct, pegamos o primeiro valor, ou seja o menor da tabela que não seja null. Agora trabalhamos em apenas um subconjunto dessa tabela, apenas as linhas em que tenham esse menor valor da coluna commission_pct e usamos a função de group MAX em salary, nos retornando o maior salário de quem tem o menor valor em commission_pct.

Anúncios

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Marcado com: , , , , , , , , , , ,
Publicado em Sem categoria

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Esse Blog é reconhecido pela
Certificações
Sou articulista

Clique para seguir este blog e receber notificações via email de novos posts.

Tércio Costa

Tércio Costa

Meu nome é Tércio Costa, sou formado em Ciências da Computação pela UFPB, tenho a certificação Oracle SQL Expert e OCP PL/SQL, mantendo um blog reconhecido pela OTN(oraclepress.wordpress.com), no qual também publico artigos técnicos no portal OTN, no portal http://www.profissionaloracle.com.br/gpo e na revista SQL Magazine. Além de tudo isto sou um Oracle ACE Associate por estar sempre contribuindo para a comunidade com um bom nível de expertise.

Links Pessoais

Serviços verificados

Visualizar Perfil Completo →

Total de Visualizações da Página
  • 138.077 Visualizações
%d blogueiros gostam disto: