Em 2 de maio de 2013 15:06, Moisés P. Sena <[email protected]> escreveu:
> Preciso obter o mínimo do DIA, portanto 'day', mas quero saber em que
> momento (HORA e MINUTO) ocorreu este mínimo DIARIO. Entendeu?
> Eu li a documentação da função, mas não bate com o que quero.
>
> Até onde eu sei, não posso colocar o campo "datahora" na consulta, se nao
> nunca vai dar o resultado esperado, pois terei de coloca-lo no GROUP BY, e
> isso nao vai funcionar pois DATAHORA é PK - nunca repete.
>
> Obrigado!


Moisés...
Para resolver com um único select e group by não dá,  segue a forma
que eu uso para resolver esse tipo de problema

-- Resultado 1
select d.datahora::date,
     min(d.datahora),
     d_val.val_min
from dados d
join (
     select datahora::date,
          min(valor) val_min
     from dados
     group by datahora::date
) d_val
  on d.datahora::date = d_val.datahora
        and d.valor = d_val.val_min
group by d.datahora::date, d_val.val_min;

-- Resultado 2
select d.datahora::date,
     d.datahora,
     d_val.val_min
from dados d
join (
     select datahora::date,
         min(valor) val_min
     from dados
    group by datahora::date
) d_val
  on d.datahora::date = d_val.datahora
and d.valor = d_val.val_min
order by d.datahora::date, d.datahora;


--
Marcone Peres - DBA
http://www.linkedin.com/in/marconeperes
oraculogeo.blogspot.com
@marconeperes
(61) 8146-0028
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a