SQL em Oracle > DML > Funções > Funções de grupo > Funções de estatística
Funções de estatística tl_logo2.jpg

Enquadram-se nas funções de grupo ou agregado porque operam sobre um conjunto de linhas, produzindo um único resultado para esse conjunto, ao contrário das funções de linha que produzem um resultado para cada linha. Quando não é usada a clausula GROUP BY todas as linhas da tabela são tratadas como um grupo.

As colunas que possuem valores null são ignoradas. Todas as funções permitem a utilização da clausula DISTINCT que elimina valores repetidos.


AVG ([DISTINCT|ALL] n)

Valor médio da coluna n. No exemplo abaixo será o valor médio da coluna COMM. No primeiro caso não são considerados os valores nulos, ou seja, só contam os empregados que têem comissão. No segundo caso os valores nulos são convertidos em zero, usando a função NVL.

select avg(comm),avg(nvl(comm,0)) from emp
AVG(COMM)              AVG(NVL(COMM,0))       
---------------------- ---------------------- 
550                    157,142857142857142857142857142857142857 

1 rows selected

bthome.gifTopo


COUNT ([DISTINCT|ALL] expr)

Número de vezes que expr toma um valor não nulo. Para contar os nulos é necessário usar a função NVL(). O exemplo abaixo conta o número de empregados que têm comissão, com e sem tratamento de nulos.

select count(comm), count(nvl(comm,0)), count(*) from emp
COUNT(COMM)            COUNT(NVL(COMM,0))     COUNT(*)               
---------------------- ---------------------- ---------------------- 
4                      14                     14                     

1 rows selected

O exemplo abaixo conta o número de linhas resultante da consulta:

select count(*) from emp where deptno=20
COUNT(*)               
---------------------- 
5                      

1 rows selected

bthome.gifTopo


MAX ([DISTINCT|ALL] expr)

Determina o valor máximo de expr. Se expr for o nome de uma coluna determina o maior valor dentro da coluna.

select max(comm), max(nvl(comm,0)) from emp;
MAX(COMM)              MAX(NVL(COMM,0))       
---------------------- ---------------------- 
1400                   1400                   

1 rows selected

bthome.gifTopo


MIN ([DISTINCT|ALL] expr)

Determina o valor mínimo de expr. Se expr for o nome de uma coluna determina o menor valor dentro da coluna.

select min(comm), min(nvl(comm,0)) from emp;
MIN(COMM)              MIN(NVL(COMM,0))       
---------------------- ---------------------- 
0                      0                      

1 rows selected

bthome.gifTopo


STDDEV ([DISTINCT|ALL] n)

Determina o desvio padrão de n, ignorando valores nulos. No exemplo abaixo o desvio padrão é calculado com e sem tratamento de valores nulos.

select stddev(comm), stddev(nvl(comm,0)) from emp;
STDDEV(COMM)                             STDDEV(NVL(COMM,0))    
---------------------------------------- ---------------------- 
602,771377334170814668314285232930427848 387,723703595318414561729355521732540687 

1 rows selected

bthome.gifTopo


SUM ([DISTINCT|ALL] n)

Soma os valores de n, ignorando os valores nulos. No exemplo abaixo a soma é feita com e sem tratamento de valores nulos.

select sum(comm), sum(nvl(comm,0)) from emp;
SUM(COMM)              SUM(NVL(COMM,0))       
---------------------- ---------------------- 
2200                   2200                   

1 rows selected

bthome.gifTopo


VARIANCE ([DISTINCT|ALL] n)

Determina a variância de n, ignorando valores nulos. No exemplo abaixo a variância é calculada com e sem tratamento de valores nulos.

select variance(comm), variance(nvl(comm,0)) from emp;
VARIANCE(COMM)                            VARIANCE(NVL(COMM,0))  
----------------------------------------- ---------------------- 
363333,3333333333333333333333333333333333 150329,67032967032967032967032967032967 

1 rows selected

bthome.gifTopo


Realizado por Turtle Learning ®. Última alteração em 2011-02-26