Bom, consegui fazer com subselect, mas não sei se é a melhor forma. Alguém
sabe alguma outra forma que demanda menos processamento?

SELECT
    d.datahora,
    r.valor
FROM (
    SELECT
        date_trunc('day', datahora) as dt,
        min(valor) as valor
    FROM dados
    GROUP BY 1
    ORDER BY 1
) r
INNER JOIN dados d
    ON date_trunc('day', d.datahora) = r.dt AND r.valor = d.valor
ORDER BY d.datahora ASC;

      datahora       | valor
---------------------+-------
 2013-01-01 00:20:00 |     1
 2013-01-02 00:30:00 |     2
 2013-01-02 00:50:00 |     2
(3 rows)





Em 2 de maio de 2013 15:06, Moisés P. Sena <[email protected]> escreveu:

>
> Em 2 de maio de 2013 13:11, Flavio Henrique Araque Gurgel <
> [email protected]> escreveu:
>
> Então substitua 'day' por 'hour' na função date_trunc.
>
>
>  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 P. Sena
> (Analista e desenvolvedor de sistemas WEB e mobile)
> http://www.moisespsena.com
> http://linux.moisespsena.com
>



-- 
Moisés P. Sena
(Analista e desenvolvedor de sistemas WEB e mobile)
http://www.moisespsena.com
http://linux.moisespsena.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a