Oracle - Conteo de registros continuos/discontinuos

 
Vista:

Conteo de registros continuos/discontinuos

Publicado por Daniel Rodas (5 intervenciones) el 10/05/2012 17:11:28
Saludos. Por favor, si alguien puede ayudarme o darme algun tip que le halla funcionado se los agradezco, ahora paso a explicar que quiero hacer:

Tengo que contar la continuidad en un listado que me genera el siguiente query:

select codigo,
zona,
campania
from facturacion
where codigo_pais = 1
and anio = 2012
and campania >= 4
and tipo_orden = 1
and fecha_facturacion <= '09-05-2012'
order by codigo
,campania;

Me genera un listado similar al siguiente:
CODIGO ZONA CAMPANIA
---------- ---------- ----------
13 141 4
13 141 6
17 108 5
19 116 4
19 116 5
19 116 6
20 116 4
20 116 5
20 116 6

Yo tengo que contar, por ejemplo para el código 13, cuantos registros continuos me retorna; pero... aquí viene el truco, porque no es solo con un count, porque la condición es:
si el campo campania tiene valores continuos,es decir: 4,5,6 entonces el count para el código 13 debe ser 3; pero si son discontinuos como es este caso: 4,6 (aqui falta el 5) entonces el count para el código 13 debe ser 0 y asi por el estilo.

Quiero obtener un listado similar a este:
CODIGO ZONA CAMPANIA count
---------- ---------- ---------- ------
13 141 4
13 141 6 0
17 108 5 0
19 116 4
19 116 5
19 116 6 3
20 116 4
20 116 5
20 116 6 3

Me hablaron de las Analytic functions, y las he estado investigando pero no me funcionan, entonces estoy buscando otra forma de hacer esto.

Habia pensado hacer una función con cursor controlando las filas pero no me parece muy eficiente.

Por favor, si alguien tiene alguna idea se los agradezco nuevamente.

Bendiciones
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder