Documente Academic
Documente Profesional
Documente Cultură
Introduo
Na primeira parte deste artigo, publicado na edio anterior, as funes analticas,
utilizadas para facilitar as anlises de negcios (Business Inteligence) e dar suporte
a tarefas analticas para apoio deciso, tiveram seus conceitos gerais
apresentados.
As funes referentes classificao e cruzamento de informaes sero
apresentadas com detalhes nesta edio, merecendo ateno especial.
Funes Analticas de Classificao
As funes analticas de classificao so uma forma fcil de calcular a posio de
cada registro em relao aos demais. Os registros podem ser classificados com
base no valor (crescente ou decrescente) de uma determinada coluna ou com base
em distribuio e percentis, como veremos no decorrer das funes apresentadas
nesta seo.
RANK e DENSE_RANK
As funes RANK e DENSE_RANK classificam resultados de uma seleo com base
em uma das colunas selecionadas (em ordem crescente (ASC) ou decrescente
(DESC)) na clusula ORDER BY, que obrigatria. Os valores classificados ainda
podem estar particionados em grupos atravs da clusula PARTITION BY. Neste
caso, a classificao recomear do valor 1 cada vez que o valor do conjunto de
colunas da clusula PARTITION BY se alterar. A Listagem 1 apresenta a definio
dos comandos de classificao.
RANK ou DENSE_RANK ( )
OVER ([PARTITION BY lista de itens para partio]
[ORDER BY lista de itens que ordenam a classificao] [ASC ou DESC]
[NULLS FIRST ou NULLS LAST])
Listagem 1 Sintaxe dos comandos de classificao.
O exemplo da Listagem 2 classifica as cidades por quantidade de clientes aos
finais de semana usando a funo analtica de classificao RANK no particionada.
select RPAD(s.city,20) "Cidade",
SUM(f.customer_count) "Cliente",
RANK() OVER(ORDER BY SUM(f.customer_count) DESC) "Colocao"
from times t, store s, sales_fact f
where t.time_key = f.time_key and
s.store_key = f.store_key and
t.day_of_week in ('Sunday', 'Saturday')
GROUP BY s.city
ORDER BY 3;
Cidade
Cliente Colocao
----------- ---------- -------------New York
22722
1
Cincinnati
11443
2
Louisville
10731
3
...
Dallas
2276
20
Listagem 2 Utilizao de Funo analtica RANK no particionada