Normalice datos de transacciones desde columnas de tiempo y estado a minutos por valor de estado
Tengo una tabla de cambios en los estados de los usuarios, como:
insert_time status
1/1/2017 0:00 AVAILABLE
1/1/2017 0:15 BUSY
1/1/2017 0:30 NOT AVAILABLE
1/1/2017 1:30 AVAILABLE
1/1/2017 3:10 BUSY
1/1/2017 5:00 NOT AVAILABLE
Por ejemplo: este usuario estaba disponible entre las 00:00 y las 00:15 y ocupado desde las 00:15 hasta las 00:30 y así sucesivamente.
Para analizar los datos, necesito transformarlos a esta estructura:
day hour available minutes not available minutes busy minutes
1/1/2017 0 15 30 15
1/1/2017 1 30 30 0
1/1/2017 2 60 0 0
1/1/2017 3 10 0 50
1/1/2017 4 0 0 60
que incluye datos de horas cuyo estado no ha cambiado.
Creo que no es una simple consulta PIVOT, porque necesito dividir una sola fila en varias columnas, incluidas las horas sin datos.
¿Cómo puedo hacerlo en una consulta Oracle SQL?