Dúvida em SQL

Pessoal,

Tenho uma tabela que possui a alocação de recursos tendo uma data inicial e uma data final de cada aloação.

Preciso montar uma query que me contenha minuto a minuto a qtde de recursos alocados.

Isso é possível fazer em um select?

Depende… qual a descrição completa das colunas dessa tabela?

tabela recurso_ocupacao:
id_recurso: int
data_inicial: timestamp
data_final: timestamp

Exemplo:

id_recurso | data_inicial     | data_final       |
1          | 2006-08-30 08:00 | 2006-08-30 08:02 |
2          | 2006-08-30 08:00 | 2006-08-30 08:05 |
3          | 2006-08-30 08:01 | 2006-08-30 08:03 |

O resultado deveria ser assim:

2006-08-30 08:00 | 2
2006-08-30 08:01 | 3
2006-08-30 08:02 | 3
2006-08-30 08:03 | 2
2006-08-30 08:04 | 1
2006-08-30 08:05 | 1

Já tentou algo assim?

SELECT count(r1.id_recurso), r1.data_inicial
FROM recurso_ocupacao r1, recurso_ocupacao r2,
WHERE r1.data_inicial between r2.data_inicial  and r2.data_final
GROUP BY r1.data_inicial 
count | data_inicial
4       | 2006-08-30 08:00:00
3       | 2006-08-30 08:01:00

Boaglio,

O problema é que eu vejo é que eu teria que gerar antes do group by uma linha para cada minuto ocupado, exemplo, para o registro 1 deveria ter no resultset tres linhas, com os horários a cada minuto…