Preciso retorna um resultado que me fale por hora qual a quantidade naquele horario, por exemplo...
07:30 - 50
08:30 - 100
09:30 - 20
e assim por diante.
Criei a seguinte consulta....
select distinct CONCAT(HOUR(`mm`.`datahora`),':',30) as `datahora`
, (select count(1) from `maquina-montador` as `mm1`
where convert(CONCAT(HOUR(`mm1`.`datahora`),MINUTE(`mm1`.`datahora`)), SIGNED )
<= convert(CONCAT(HOUR(`mm`.`datahora`),30),SIGNED)
and convert(CONCAT(HOUR(`mm1`.`datahora`),MINUTE(`mm1`.`datahora`)) ,SIGNED) >= convert(CONCAT(HOUR(`mm`.`datahora`)-1,30),SIGNED)
and DAY(`mm1`.datahora) = DAY(`mm`.datahora)
and MONTH(`mm1`.datahora) = MONTH(`mm`.datahora)
) as `COUNT`
from `maquina-montador` as `mm`
where 1=1
and DAY(`mm`.datahora) = 20
and MONTH(`mm`.datahora) = MONTH(NOW())
group by `datahora`;
Consigo o resultado que quero, mas a consulta nos testes está demorando 1,4 segundos para uma tabela de 150 registros, meu problema é que essa consulta em produção será realizado em uma tabela com mais de 10000 registros.
Preciso otimizar essa consulta, no Oracle, se não me engano, para obter o mesmo resultado a função TRUNC resolve.
Pergunta
Eduardo Lopes Couto
Olá a todos.
Estou com um problema, eu tenho os seguintes dados em uma tabela...
Preciso retorna um resultado que me fale por hora qual a quantidade naquele horario, por exemplo... e assim por diante. Criei a seguinte consulta....Consigo o resultado que quero, mas a consulta nos testes está demorando 1,4 segundos para uma tabela de 150 registros, meu problema é que essa consulta em produção será realizado em uma tabela com mais de 10000 registros.
Preciso otimizar essa consulta, no Oracle, se não me engano, para obter o mesmo resultado a função TRUNC resolve.
Existe uma funçao parecida no mysql???
Grato pela atenção de todos.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados