Clique aqui para ler esse artigo em PDF.
Banco de Dados
Resposta do desafio
Antes de tentar resolver um desafio é preciso entender o problema, em nosso caso o gerente de uma loja quer saber não só o total de vendas por vendedor, mas também em que ordem as vendas aconteceram.
Portanto, a idéia é seguir a seqüência de vendas através do id_vendas e verificar quem é o próximo vendedor, quando houver quebra de vendedor, fazemos a soma e mostramos as seqüências inicial e final.
Vejamos esta solução passo-a-passo.
1) O primeiro passo é descobrir a seqüência de vendas e vendedores. Para isso, utilizei a função analítica lag( ) ordenada pelo id_venda. Veja o resultado na Listagem 1.
SQL>SELECT LAG(VENDEDOR) OVER (ORDER BY ID_VENDAS) LAG_VEND, V.*
2 FROM VENDAS V
3 /
LAG_VEND ID_VENDAS VENDEDOR VENDAS_VALOR
---------- ---------- ---------- ------------
1 MARIA .4
MARIA 2 MARIA .8
MARIA 3 MARIA 1.2
MARIA 4 MARIA 1.6
MARIA 5 MARIA 2
MARIA 6 MARIA ...