Por siguientes datos:Selección de todas las filas hasta la primera aparición de valor dado
fecha | valor | comprobar
2009 | 5 | 1
2008 | 5 | 1
2007 | 5 | 1
2006 | 5 | 0
2005 | 5 | 0
2004 | 5 | 1
2003 | 5 | 1
2002 | 5 | 1
necesito para seleccionar todas las filas de 2009 hacia atrás hasta la primera ocurrencia de 0 en la columna de comprobación:
fecha | valor | comprobar
2009 | 5 | 1
2008 | 5 | 1
2007 | 5 | 1
Intenté con la función de retraso, pero solo pude verificar hace un mes.
Estoy trabajando en Oracle 10g.
gracias de antemano,
ACTUALIZACIÓN:
Todo parece funcionar bien, mi conjunto de datos de prueba es demasiado pequeña como para decir nada acerca de las diferencias de rendimiento. ¡Gracias por todas tus entradas!
Esto sólo sería "detener la exploración" si el orden interno POR mostró satisfecho por un índice, en cuyo caso puede ser que también utilice la primera versión. De lo contrario, Oracle clasificará el conjunto de resultados interno en su totalidad. –
Claro que sí. Pero esta solución solo necesita un índice el (fecha) para trabajar de manera eficiente, mientras que la solución MAX() también necesita un índice (verificación, fecha). – Quassnoi