Você está na página 1de 8

Ministrio da Agricultura, Pecuria e Abastecimento

Comunicado 41 Tcnico
ISSN 1677-8464

Dezembro, 2002 Campinas, SP

Funes Analticas da Linguagem Sql do Oracle

Carlos Alberto Alves Meira1 Tatiana Aparecida Lima de Souza2

A linguagem Structured Query Language (SQL), at pouco tempo, tinha deficincia no suporte a tarefas de anlise. Clculos bsicos de Inteligncia de Negcios (Business Intelligence) ou On-Line Analytical Processing (OLAP), tais como mdias mveis, classificaes e comparaes entre diferentes perodos, requeriam programao extensa em SQL ou em outra linguagem, apresentando problemas de desempenho (Oracle Corporation, 1999). A Oracle introduziu funes analticas na sua linguagem SQL com o sistema gerenciador de bancos de dados Oracle 8i. Depois disso, essas funes foram para reviso no instituto American National Standards Institute (ANSI), para incluso no padro SQL. Atualmente, as funes analticas do Oracle fazem parte do padro denominado SQL:1999, oficializadas no ano 2001, numa emenda norma ANSI/ISO/IEC 9075 (ISO, 1992) que especifica o padro. As funes analticas podem ser consideradas novas e existem poucos trabalhos que descrevem suas funcionalidades e exemplificam suas virtudes. Este trabalho uma pequena, mas importante, contribuio nesse sentido, abordando algumas das funes analticas do Oracle e exemplificando o seu uso, a partir de experincias obtidas num projeto de integrao de informao (Garcia-Molina et al., 1999; Salgado &

Lscio, 2001), sob responsabilidade da Embrapa Informtica Agropecuria. O referido projeto a construo do Armazm de Dados da Fruticultura (ADF), um data warehouse que rene informaes de bancos de dados mantidos por diferentes instituies, a respeito de produo, comrcio exterior e comercializao de frutas e alguns derivados. O objetivo desse banco de dados tornar disponveis os dados integrados para consultas, permitindo anlises para suporte tomada de decises como, por exemplo, indicao e direcionamento de programas de incentivo produo e exportao de frutas no Brasil (Seixas Neto et al., 2000; Fileto et al., 2002). O contedo deste trabalho inicia com uma descrio geral das funes analticas. Depois, so descritas as caractersticas de cada funo contemplada, com exemplos de sua utilizao. Cada funo apresentada foi bastante til na elaborao dos relatrios de anlise emitidos a partir do ADF (Meira et al., 2001). Os exemplos esto baseados no esquema de banco de dados desse data warehouse. Entretanto, vale ressaltar que esses exemplos e a apresentao de seus resultados foram elaborados para fins didticos, no representando o formato dos relatrios destinados aos usurios finais do ADF.

M.Sc. em Cincias de Computao e Matemtica Computacional, Pesquisador da Embrapa Informtica Agropecuria, Caixa Postal 6041, Baro Geraldo, 13083-970 Campinas, SP. (e-mail: carlos@cnptia.embrapa.br) Tecnloga em Processamento de Dados, Bolsista do CNPq na Embrapa Informtica Agropecuria, Caixa Postal 6041, Baro Geraldo, 13083-970 Campinas, SP. (e-mail: tatiana@cnptia.embrapa.br)

Funes Analticas da Linguagem Sql do Oracle

Para um melhor entendimento dos exemplos, necessrio que o leitor tenha conhecimento prvio da linguagem SQL (Date & Darwen, 1997; Kocchar et al., 2000), especificamente de seus principais comandos e clusulas. O esquema de banco de dados do ADF no apresentado neste trabalho, com o intuito de no estender muito o texto, o que no compromete a compreenso dos exemplos.

exportaes de frutas, ms a ms e permite clculos considerando perodos estipulados, como uma mdia mvel de 12 meses. Na verdade, no so funes novas incorporadas, mas palavras-chaves novas na sintaxe de funes j conhecidas, tais como AVG (mdia), SUM (somatria), MIN (valor mnimo), MAX (valor mximo), COUNT (contagem de linhas) e outras. As funes analticas so o ltimo conjunto de operaes realizado numa consulta, exceto a clusula final ORDER BY. Todas as junes e todas as clusulas WHERE, GROUP BY e HAVING so completadas antes das funes analticas serem processadas. Portanto, as funes analticas podem aparecer apenas na lista do SELECT ou na clusula final ORDER BY. As funes analticas permitem que o conjunto resultante da consulta seja dividido em grupos ordenados de linhas chamados de parties. Essa diviso pode estar baseada em qualquer coluna ou expresso. Um resultado de consulta pode ter uma nica partio, com todas as linhas, ou vrias pequenas parties com poucas linhas. Cada clculo executado com uma funo analtica est baseado numa linha corrente dentro de uma partio.

Funes Analticas do Oracle


As funes analticas so valiosas para todo tipo de processamento, desde suporte deciso interativo at gerao de relatrios em lote. Alm disso, melhoram o desempenho de consultas ao banco de dados e a produtividade dos desenvolvedores. As otimizaes incorporadas com as funes analticas melhoram significativamente o desempenho das consultas. As funes permitem que desenvolvedores implementem anlises com cdigo bem mais claro e conciso. Aes que antes requeriam mltiplos comandos SQL, ou o uso de linguagem procedimental, podem agora ser realizadas com comandos SQL simples. O novo cdigo requerido mais rpido de ser elaborado e mais fcil de ser mantido. As funes analticas do Oracle esto organizadas em quatro famlias de funes (Oracle Corporation, 1999). Neste trabalho, so apresentadas algumas das funes analticas, aquelas de maior utilidade nos relatrios emitidos a partir do ADF, sendo descritas, incluindo exemplos, funes de trs das famlias, a saber: Ranking Family : as funes dessa famlia permitem o clculo da posio de uma linha do resultado de uma consulta em relao s demais linhas, baseado em um conjunto de medidas; suporta questes do tipo apresente os vinte principais municpios produtores de laranja do Brasil. Reporting Aggregate Family : essa famlia permite apresentao numa mesma linha de valores calculados em diferentes nveis de agregao 3 . Uma das tarefas analticas mais comuns a comparao de um valor no agregado com um valor agregado. Lag/Lead Family : essas funes permitem comparaes entre valores de diferentes linhas de uma tabela, fundamentais no estudo de mudanas e variaes na atividade de anlise. A quarta famlia, Window Aggregate Family, suporta questes do tipo apresente um valor cumulativo de

Funo RANK
As funes da famlia Ranking calculam o rank (posio, ordem) de uma linha em relao s demais linhas, dentro de um conjunto de dados, baseado em um valor ou um conjunto de medidas definido pelo usurio. A funo RANK produz uma classificao ordenada de linhas comeando com a posio 1. A sintaxe dela encontra-se a seguir, exceto os detalhes da clusula ORDER BY, que mais conhecida. A sintaxe completa dessa e das demais funes analticas pode ser consultada no manual de referncia da linguagem SQL do Oracle (Lorentz, 1999). Sintaxe: RANK() OVER ( [query_partition_clause] order_by_clause )

query_partition_clause: PARTITION BY exp_list


A clusula opcional PARTITION BY usada para definir onde o clculo da posio reinicializado. Caso nenhuma partio seja especificada, a classificao feita em todo o conjunto resultante da consulta. A coluna cujos valores so classificados definida na clusula ORDER BY. A posio 1 atribuda ao menor valor dessa coluna, exceto se uma ordenao descendente (DESC) for usada. A consulta de exemplo a seguir produz como resultado uma classificao anual dos pases importadores de castanha de caju (cdigo de produto 8013200), de acordo com o valor exportado (US$). Um trecho do resultado da consulta apresentado na tabela seguinte, onde se pode perceber o reincio do ranking de uma partio (um determinado ano) para outra.

Agregao o ato ou efeito de agregar (acumular ou juntar) valores. Diferentes nveis de agregao numa mesma dimenso acumulam mais ou menos valores. Por exemplo, o nvel regional possui maior agregao que o nvel estadual.

Funes Analticas da Linguagem Sql do Oracle

SELECT exportacao.ano, fruta.produto, pais.nome_pais, RANK() OVER (PARTITION BY ano ORDER BY SUM(exportacao.us_fob) DESC) posicao, SUM(exportacao.us_fob) valor FROM pais, fruta, exportacao WHERE fruta.cod_ncm = 8013200 AND fruta.cod_ncm = exportacao.cod_ncm AND pais.cod_pais = exportacao.cod_pais GROUP BY exportacao.ano, pais.nome_pais, fruta.produto ORDER BY exportacao.ano, valor DESC;

Ano ... 2001 2001 2002 2002 2002 2002 2002 2002 2002 ... ...

Produto ...

Pas

Posio ... 28 29 1 2 3 4 5 6 7 ...

Valor ... 1.410 1.021 64.738.454 6.652.375 2.170.695 2.070.205 1.965.655 1.868.781 961.575 ...

Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju Castanha de Caju ...

Angola Finlndia Estados Unidos Canad Alemanha Itlia Frana Lbano Portugal ...

A prxima consulta de exemplo produz como resultado dois rankings de empresas (cdigo CNPJ ou CPF) exportadoras de laranja (cdigo de produto 8013200), de acordo com o valor exportado (US$). O primeiro ranking est particionado por ano; o segundo por ano

e regio. Desta forma, uma certa empresa tem sua classificao nacional num determinado ano e neste mesmo ano tem sua classificao na regio em que est localizada. Um trecho do resultado da consulta apresentado na tabela seguinte.

SELECT exportacao.ano, fruta.produto, exportacao.cnpj_cpf, estado.regiao, RANK() OVER (PARTITION BY exportacao.ano ORDER BY SUM(exportacao.us_fob) DESC) pos_nac, RANK() OVER (PARTITION BY exportacao.ano, estado.regiao ORDER BY SUM(exportacao.us_fob) DESC) pos_reg, SUM(exportacao.us_fob) valor FROM fruta, estado, exportacao

WHERE fruta.cod_ncm = 08051000 AND fruta.cod_ncm = exportacao.cod_ncm AND estado.cod_uf = exportacao.cod_uf GROUP BY exportacao.ano, fruta.produto, estado.regiao, exportacao.cnpj_cpf ORDER BY exportacao.ano, valor DESC;

Funes Analticas da Linguagem Sql do Oracle

Ano ... 2001 2001 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 ...

Produto ... Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja ... ...

Empresa CNPJ/CPF ...

Regio

Posio Nacional ... 16 16 1 2 3 4 5 6 7 8 9 10 ...

Posio Regional ... 1 14 1 2 3 4 5 6 7 1 2 8 ...

Valor ... 810 810 3.556.637 2.550.461 762.550 279.419 148.734 49.233 47.030 30.309 18.815 8.564 ...

16495483000182 67626655000140 52746419001243 61649810000168 50897875002150 48155543000457 65023467000100 58902438000145 53522801000183 84430149000109 87178448000188 00026893000144 ...

NORDESTE SUDESTE SUDESTE SUDESTE SUDESTE SUDESTE SUDESTE SUDESTE SUDESTE SUL SUL SUDESTE ...

Pelo resultado apresentado na tabela, verifica-se que, no ano 2002 4 : a empresa exportadora de laranja primeira colocada na regio Sul ficou com a oitava posio nacional; as sete primeiras colocadas so da regio Sudeste; a oitava colocada na regio Sudeste ficou com a dcima posio nacional. Para gerar rankings com os N primeiros colocados, preciso colocar a consulta que aplica a funo analtica como uma subconsulta, e depois aplicar uma condio de filtro fora da subconsulta. A seleo dos N primeiros no funciona na consulta com a funo analtica, pois, conforme descrito anteriormente, o clculo dos valores resultantes da aplicao de funes analticas feito aps o processamento da clusula WHERE. O procedimento correto ilustrado a seguir, supondo que se deseja selecionar as dez primeiras posies de um ranking:
SELECT * FROM (<consulta com a funo analtica que calcula rank>) WHERE rank <= 10;

Funo DENSE_RANK

A funo DENSE_RANK idntica funo RANK, exceto em relao ao tratamento das ocorrncias de valores repetidos. Nesse caso, a funo DENSE_RANK no deixa abertura na seqncia numrica do ranking.

Sintaxe: DENSE_RANK() OVER ([query_partition_clause] order_by_clause )

mais fcil verificar a diferena entre as duas funes (RANK e DENSE_RANK) por meio de um exemplo. A consulta de exemplo a seguir produz como resultado a classificao dos municpios brasileiros produtores de abacate (cdigo de produto 0401) em 2000, de acordo com a rea colhida. Um trecho do resultado da consulta apresentado na tabela seguinte.

Valores acumulados at outubro de 2002.

Funes Analticas da Linguagem Sql do Oracle

SELECT pam.ano, municipio.nome_municipio, estado.sigla_uf, pam.area_colhida, RANK() OVER (PARTITION BY pam.ano ORDER BY pam.area_colhida DESC) rank, DENSE_RANK() OVER (PARTITION BY pam.ano ORDER BY pam.area_colhida DESC) dense_rank FROM pam, estado, municipio WHERE municipio.cod_uf = pam.cod_uf AND municipio.cod_meso = pam.cod_meso AND municipio.cod_micro = pam.cod_micro AND municipio.cod_municipio = pam.cod_municipio AND municipio.cod_uf = estado.cod_uf AND pam.cod_produto = 0401 AND pam.ano = 2000 GROUP BY pam.ano, municipio.nome_municipio, estado.sigla_uf, pam.area_colhida ORDER BY pam.ano, pam.area_colhida DESC;

Ano 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 ...

Municpio Presidente Olegrio Venda Nova do Imigrante Santarm Novo Arapongas Moji-Mirim Limeira Jardinpolis Cordeirpolis Arealva Bauru Tup Conceio do Castelo Duartina Mirandpolis Castelo ...

UF MG ES PA PR SP SP SP SP SP SP SP ES SP SP ES ...

Area colhida 603 400 350 300 281 259 244 230 209 200 200 200 190 180 150 ...

Rank 1 2 3 4 5 6 7 8 9 10 10 10 13 14 15 ...

Dense_rank 1 2 3 4 5 6 7 8 9 10 10 10 11 12 13 ...

Nota-se no resultado apresentado na tabela que existe um empate triplo na dcima posio, onde a rea colhida 200 hectares. Pelo ranking com a funo RANK, a prxima posio a dcima terceira, indicando o nmero de municpios apresentados at aquele

ponto. J no ranking com a funo DENSE_RANK, a prxima posio a dcima primeira, sem pular da posio 10 para a posio 13, indicando que ocorreram onze diferentes valores de rea colhida at aquele mesmo ponto.

Funes Analticas da Linguagem Sql do Oracle

Funo RATIO_TO_REPORT
A funo RATIO_TO_REPORT pertence famlia Reporting Aggregate Family. As funes dessa famlia permitem que uma linha de um resultado de consulta possua valores de diferentes nveis de agregao. Comparar valores de um nvel de agregao com valores de outro nvel de agregao essencial num trabalho analtico. Por exemplo, pode-se querer comparar a mdia de exportao de frutas dos municpios de um estado com a mdia estadual ou calcular o percentual de um total mensal em relao ao total do ano. A funo RATIO_TO_REPORT calcula a proporo de um valor em relao agregao de um conjunto de valores. Ela pode ser usada para calcular fraes, tais como participaes de mercado de empresas concorrentes e distribuio de custos em anlises financeiras. Sintaxe: RATIO_TO_REPORT(expr) OVER

produto 08051000) do Brasil, indicando o total anual importado em valores monetrios (US$) e o percentual desse valor em relao ao total geral exportado de laranja pelo Brasil no mesmo ano. Um trecho do resultado (ano 2002 completo) da consulta

SELECT exportacao.ano, fruta.produto, pais.nome_pais, SUM(exportacao.us_fob) valor, ROUND((RATIO_TO_REPORT(SUM(exportacao.us_fob)) OVER (PARTITION BY exportacao.ano))*100, 3) AS percentual FROM exportacao, fruta, pais WHERE fruta.cod_ncm = 08051000 AND fruta.cod_ncm = exportacao.cod_ncm AND pais.cod_pais = exportacao.cod_pais GROUP BY exportacao.ano, pais.nome_pais fruta.produto,

( [query_partition_clause] )
A consulta de exemplo a seguir produz como resultado a relao de pases importadores de laranja (cdigo de

ORDER BY exportacao.ano, valor DESC;

Produto
... 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 2002 ... Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja Laranja ...

Pas

Valor
... 3.104.024 1.876.054 838.710 722.106 512.580 236.414 97.516 48.510 18.815 5.706 3.098 1.248 183 78

Percentual
... 41,581 25,131 11,235 9,673 6,866 3,167 1,306 0,650 0,252 0,076 0,042 0,017 0,002 0,001

Pases Baixos Espanha Emir. rabes Un. Reino Unido Portugal Coveite Indonsia Arbia Saudita Frana Cabo Verde Angola Uruguai Chile Argentina

Funes Analticas da Linguagem Sql do Oracle

apresentado na tabela seguinte. O valor total exportado de laranja em 2002 pelo Brasil foi de US$ 7.465.042,00 (somatrio dos valores da coluna VALOR). Para exemplificar como feito o clculo do percentual de um pas em relao a esse total anual geral, considere as exportaes de laranja para os Pases Baixos. O clculo do percentual feito da seguinte forma (a funo ROUND arredonda o resultado da expresso para o nmero de casas decimais especificado aps a vrgula, no caso 3): Percentual = ROUND((3.104.024 / 7.465.042)*100, 3) = 41,581 A frao 3.104.024 (total de Pases Baixos em 2002) dividido por 7.465.042 (total anual geral) calculada pela funo RATIO_TO_REPORT (ver consulta de exemplo anterior).
4

especificando um deslocamento a partir da linha corrente, sem a necessidade de realizar self-joins (juno de uma tabela com ela mesma), o que melhora sensivelmente o desempenho da consulta. A funo LAG realiza o deslocamento no sentido inverso da ordenao do conjunto de dados, enquanto a funo LEAD realiza o deslocamento no mesmo sentido da ordenao. A sintaxe dessas funes encontra-se a seguir. Offset o deslocamento, que assume valor 1 caso no seja especificado. Default um valor opcional de deslocamento, caso o offset especificado ultrapasse o limite do conjunto de dados.

Sintaxe: {LAG | LEAD} ( value_expr [, offset] [, default] )

OVER ( [query_partition_clause] order_by_clause )

Funes LAG e LEAD


Uma tarefa primordial em qualquer processo de anlise a comparao de valores dentro de conjuntos de dados. Pode-se querer analisar mudanas nas vendas mensais do ano corrente comparadas com as de anos anteriores ou analisar a variao entre oramento e custos reais, por exemplo. As funes LAG e LEAD permitem comparaes entre duas linhas de um mesmo conjunto de dados
SELECT exportacao.ano, fruta.produto, SUM(exportacao.us_fob) valor,

A consulta de exemplo a seguir produz como resultado, em cada linha e na coluna VALOR, o total anual de laranja exportado pelo Brasil 4 (cdigo de produto 08051000) em valores monetrios (US$). A coluna ANTERIOR indica o total anual exportado no ano anterior (offset = 1), calculado com a funo LAG. E a coluna POSTERIOR indica o total anual exportado no ano seguinte, calculado com a funo LEAD. O resultado completo da consulta apresentado na tabela seguinte.

LAG (SUM(exportacao.us_fob), 1) OVER (ORDER BY exportacao.ano) anterior, LEAD (SUM(exportacao.us_fob), 1) OVER (ORDER BY exportacao.ano) posterior FROM fruta, exportacao WHERE fruta.cod_ncm = exportacao.cod_ncm AND fruta.cod_ncm = 08051000 GROUP BY exportacao.ano, fruta.produto ORDER BY exportacao.ano;

Ano
1997 1998 1999 2000 2001 2002

Fruta
Laranja Laranja Laranja Laranja Laranja Laranja

Valor
23.091.638 14.358.728 21.108.431 15.247.625 27.538.089 6.360.426

Anterior
NULL 23.091.638 14.358.728 21.108.431 15.247.625 27.538.089

Posterior
14.358.728 21.108.431 15.247.625 27.538.089 6.360.426 NULL

Funes Analticas da Linguagem Sql do Oracle

O primeiro valor na coluna ANTERIOR e o ltimo valor na coluna POSTERIOR so nulos, pois no existem registros para os anos 1996 e 2003, respectivamente. Vale ressaltar tambm que no foi necessria a clusula PARTITION BY, j que as funes analticas deviam ser aplicadas no resultado completo da consulta. O exemplo apresentado bastante simples, apenas para finalidade didtica. claro que mais interessante para o usurio final analisar as variaes j calculadas, sejam absolutas ou relativas. Esses clculos, a partir dos valores apresentados, so fceis de serem feitos utilizando operaes simples de subtrao e diviso.

Referncias Bibliogrficas
DATE, C. J.; DARWEN, H. Guide to SQL standard: users guide to the standard database language SQL. 4.ed. Reading: Addison-Wesley, 1997. 522 p. FILETO, R.; MEIRA, C. A. A.; NAKA, J.; SEIXAS NETO, A.; MEDEIROS, C. B. An XML - Centered warehouse to manage information of the fruit supply chain. In: WORLD CONGRESS OF COMPUTER IN AGRICULTURE AND NATURAL RESOURCES, 2002, Iguau Falls. Proceedings of the World Congress of Computers in Agriculture and Natural Resources. Iguau Falls: ASAE, 2001. p. 540-547. GARCIA-MOLINA, H.; ULLMAN, J. D.; WIDOW, J. Information integration. In: GARCIA-MOLINA, H.; ULLMAN, J. D.; WIDOW, J. Database system implementation. New York: Prentice Hall, 1999. Ch.11, p. 595-641. ISO. International standard ISO/IEC 9075: information technology - database languages - SQL. 3rd ed. Geneve, 1992. KOCHHAR, N.; GRAVINA, E.; NATHAN, P. Introduo ao Oracle: SQL e PL/SQL: guia do estudante. Redwood Shores: Oracle Corporation, 2000. Paginao irregular. (Oracle University). LORENTZ, D. Oracle8i: SQL reference, release 2 (8.1.6). Redwood City: Oracle Corporation, 1999. Paginao irregular. MEIRA, C. A. A.; SEIXAS NETO, A.; NAKA, J.; CUNHA, L. M. S. Anlise de comrcio exterior de frutas a partir do armazm de dados da fruticultura brasileira. Campinas: Embrapa Informtica Agropecuria, 2001. 6 p. (Embrapa Informtica Agropecuria. Comunicado Tcnico, 17). ORACLE CORPORATION. Analytic functions for Oracle8i: an Oracle technical white paper. Redwood Shores, 1999. 20 p. SALGADO, A. C.; LSCIO, B. F. Integrao de dados na Web. In: ESCOLA REGIONAL DE INFORMTICA DA SBC REGIONAL DE SO PAULO, 6., 2001, So Carlos. Minicursos: coletnea de textos: anais. So Carlos: USP-ICMC, 2001. p. 157-174. SEIXAS NETO, A.; CUNHA, L. M. S.; MEIRA, C. A. A. Sistema de integrao e qualificao de informao para a cadeia de frutas. Campinas: Embrapa Informtica Agropecuria, 2000. 19 p. (Embrapa. Programa 14 Intercmbio e Produo de Informao em Apoio s Aes de Pesquisa e Desenvolvimento. Projeto 14.2001.368). Projeto em andamento.

Consideraes Finais
Este trabalho apresentou as funes analticas da linguagem SQL do sistema gerenciador de bancos de dados Oracle, que tambm fazem parte do padro ANSI/ISO/IEC SQL:1999. Portanto, tem utilidade no apenas para desenvolvedores Oracle, mas tambm para qualquer desenvolvedor que utilize um produto com linguagem SQL compatvel com o referido padro. No se fez uma descrio completa e exaustiva das funes analticas. Pelo contrrio, procurou-se fazer uma breve apresentao dessas funes, descrever sucintamente algumas delas, mas principalmente, apresentar exemplos didticos de sua utilidade. importante salientar que as demais funes possuem sintaxe e processamento semelhantes. Sendo assim, aps ler este trabalho, o leitor ter facilidade para ler e compreender os documentos tcnicos de referncia citados no texto. Apenas para informao, as demais funes analticas so: CUME_DIST e PERCENT_RANK, para clculo de distribuio cumulativa; NTILE, para clculo de quartis e outros Ntis; e ROW_NUMBER, para numerao de linhas com base na clusula ORDER_BY da consulta. As funes analticas ganharam importncia com o grande aumento da demanda por sistemas de integrao de dados (data warehouses) e sistemas de suporte a deciso. Entretanto, qualquer sistema de informao pode se beneficiar das suas funcionalidades, pois, como visto, suas operaes de anlise so comuns a muitos tipos de aplicaes.

Comunicado Tcnico, 41

Embrapa Informtica Agropecuria rea de Comunicao e Negcios (ACN) Av. Andr Tosello, 209 Cidade Universitria - Zeferino Vaz Baro Geraldo - Caixa Postal 6041 13083-970 - Campinas, SP Telefone (19) 3789-5743 - Fax (19) 3289-9594 e-mail: sac@cnptia.embrapa.br 1 edio 2002 - on-line Todos os direitos reservados
a

Comit de Publicaces

Presidente: Jos Ruy Porto de Carvalho Membros efetivos: Amarindo Fausto Soares, Ivanilde Dispato, Luciana Alvim Santos Romani, Marcia Izabel Fugisawa Souza, Suzilei Almeida Carneiro Suplentes: Adriana Delfino dos Santos, Fbio Cesar da Silva, Joo Francisco Gonalves Antunes, Maria Anglica de Andrade Leite, Moacir Pedroso Jnior Supervisor editorial: Ivanilde Dispato Normalizao bibliogrfica: Marcia Izabel Fugisawa Souza Capa: Intermdia Publicaes Cientficas Editorao Eletrnica: Intermdia Publicaes Cientficas

Expediente

Você também pode gostar