Texto escrito por João Carlos S. Ribeiro
Pessoal,
Para quem não conhece, a função analítica do Oracle DENSE_RANK gera um número seqüencial para cada linha pertencente a um determinado grupo de linhas. Vejam o exemplo:
Suponhamos a tabela MUNICIPIO:
SGUF NOMMUN
AP Santana
AP Macapá
MG Belo Horizonte
MG Leopoldina
MG Cataguases
SP São Paulo
SP Campinas
SP Santos
SP Mogi-mirim
SP Jundiaí
Para gerar um seqüencial dos municípios, classificados alfabeticamente, DENTRO dos estados, podemos fazer:
SELECT sguf, DENSE_RANK () OVER (PARTITION BY sguf ORDER BY nommun) AS seq, nommun
FROM municipio
ORDER BY 1, 2;
Resultado:
sguf seq nommun
AP 1 Macapá
AP 2 Santana
MG 1 Belo Horizonte
MG 2 Cataguases
MG 3 Leopoldina
SP 1 Campinas
SP 2 Jundiaí
SP 3 Mogi-mirim
SP 4 Santos
SP 5 São Paulo
Mais detalhes podem ser obtidos na documentação do Oracle.
Nenhum comentário:
Postar um comentário