Olá pessoas! Hoje eu precisei fazer um pareto em uma ferramenta de visualização de dados baseada em SQL, porém eu nunca precisei fazer o “FAC” (Freqüência acumulada crescente) em SQL. Sempre que precisei eu fiz em Excel ou no Qlikview ou Qliksense.

Bom, vamos ao problema:

Vamos trabalhar com a base fictícia abaixo:

A coluna verde é o nosso objetivo

Bom, no resultado nós apenas precisamos das colunas nome, total e fac. Então vamos a query:

with data as (
  select nome, total
from tabela 	
group by nome
order by total desc limit 10
)

select
  nome, total,
  sum(total) over (order by qtd desc rows between unbounded preceding and current row)
from data order by total desc

Este tipo de expressão é chamada de Common table expressions (CTEs)
Para saber mais sobre o assunto, clique aqui 

Enfim, consegui resolver o meu problema desta forma. Porém tenho que ser justo, não descobri isso sozinho. Existe uma comunidade chamada DBA Brasil e eles possuem alguns grupos no WhatsApp e um no Telegram, onde tem uma galera muito bacana disposta a compartilhar conhecimento. Estou em um dos grupos e foi lá onde consegui ajuda.

Espero ter ajudado, T xau.

Victor Bertoldo


Leave a Reply

Your email address will not be published. Required fields are marked *