Em 2 de setembro de 2010 10:22, Beto Lima <[email protected]> escreveu:
> Fabrizio e Victor
> Seria quase isso.
> Veja bem:
>
> select
> data_sessao::date,
> max(data_sessao) - min(data_sessao)
> from sessao
> where id_usuario = 2
> group by 1;
>
> os valores são esses:
>
> 2010-09-02 10:01:00
> 2010-09-02 10:11:00
> 2010-09-02 10:15:00
> 2010-09-02 10:20:00
>
> essa consulta me tráz assim:
> 2010-09-02 00:19:00
> Ele está pegando o máximo (10:20:00) e diminuindo do mínimo (10:01:00).
> Eu queria que o resultado fosse: 00:15:00
> 10:01:00 até 10:11:00 daria 10 minutos e 10:15:00 até 10:20:00 daria 5
> minutos.
> Somando daria 15 minutos.
>


Reforço o pedido de que não responda a mensagens digest. Você bagunça
o histórico da lista.

Como você determina que 10:11:00 é um término, e não um início de intervalo?
Apenas pela posição relativa?

Creio que com o uso de Window Functions você possa conseguir o
resultado desejado.
http://www.postgresql.org/docs/current/interactive/tutorial-window.html

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a