style="WIDTH: 199px; HEIGHT: 263px" alt="" hspace=0 src="/loja/img/Capa_SQL45_G.gif" align=bottom border=0>

Clique aqui para ler todos os artigos desta edição

Desafio da SQL Magazine

Resposta do desafio da Edição 45

Um problema dificilmente possui apenas um caminho para solução. O que escolhi para resolver o desafio foi usar os segundos passados da meia-noite (0-86399 - onde 0 = 0h00'00” e 86399 = 23h59'59”). Dessa forma, transformamos as horas e minutos do dia em segundos de 0 a 86399, então dividindo os segundos por 900 (15 minutos) posso encontrar seus múltiplos e agrupar os registros em ordem para fazer a contagem.

 

A técnica usada

Apenas para relembrar a tabela, vejamos a Listagem 1.

 

Listagem 1. A tabela contendo os horários

SQL> select * from t;

 

DT

-------------------

11/04/2007 11:45:00

11/04/2007 11:45:59

11/04/2007 11:59:59

11/04/2007 12:00:00

11/04/2007 12:00:01

11/04/2007 12:06:00

11/04/2007 12:14:59

11/04/2007 12:15:00

11/04/2007 12:15:01

11/04/2007 12:18:00

11/04/2007 12:30:00

11/04/2007 12:30:01

 

12 rows selected.

...

Quer ler esse conteúdo completo? Tenha acesso completo