Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-30 Por tôpico Moisés P . Sena
2011/11/30 Bruno Silva bemanuel...@gmail.com

 Foi mal, nova versão:
 select data,mem from
(
   SELECT
row_number()
 OVER (ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
 FOLLOWING ) as linha,
first_value(mem)
 OVER ( ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
 FOLLOWING ) as anterior,*
   FROM memo order by data ) as janela
 WHERE anteriormem
 ORDER BY data;

data | mem
 -+--
  2011-11-21 15:22:00 | 1049
  2011-11-21 15:25:00 | 1052
  2011-11-21 15:26:00 | 1054
  2011-11-21 15:29:00 | 1065
  2011-11-21 15:30:00 | 1080
  2011-11-21 15:32:00 | 1073
  2011-11-21 15:33:00 | 1065
  2011-11-21 15:34:00 | 1049
 (8 rows)


Este funcionou beleza, exceto pelo fato de que ele nao retorna o primeiro
registro, no caso o de 2011-11-21 15:21:00.
Mas tirando isto, funcionou perfeitamente. Para o primeiro registro nao tem
muita importancia nao, mas, se voce souber um jeito de inclui-lo seria
legal =).

Meu problema foi resolvido com este script. Agora vou estudar como a funcao
OVER faz a magica aqui =).

Obrigado a todos voces pela ajuda!!

Abraços!!!

 Bruno E. A. Silva.


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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Moisés P . Sena
Desculpe a demora em responder pessoal!
Mas obrigado a todos vocês!!

Em 22 de novembro de 2011 14:01, Paulo Vitor Bettini de Albuqerque Lima 
paulovitor...@gmail.com escreveu:

 select min(data), mem from usodememoria group by mem


Eu tentei assim mas nao chega ao resultado esperado.

Obrigado!


 Atenciosamente,
 Paulo Vitor Bettini de Albuquerque Lima
 http://about.me/paulolima


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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Moisés P . Sena
Bom dia.


 Segue o select que aqui deu certo, qualquer coisa posta ai.

 select *
 from (
 select distinct(tp.mem) as mem,min(tp.data) as data
 from tmp.tb_tmp tp
 group by tp.mem
 having count(tp.mem)  1 --se quiser apenas os que tiveram modificacao
 ) as foo
 order by mem,data


Quase funcionou, exceto por um detalhe:
- Em 2011-11-21 15:34:00, mem 1054 volta a repetir. ele deveria ter tambem
entrado no resultado, ou seja: eu  teria 2 saidas para 1054, uma as
15:26:00 e outra as 15:34:00. Abaixo é o resultado que preciso ter:

  data   | mem
---+--
 2011-11-21 15:21:00 | 1038
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:25:00 | 1052
 **2011-11-21 15:26:00 | 1054*
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
* *2011-11-21 15:34:00 | 1054*

De qualquer forma, valeu muito!!!

Abraços,

 Espero que te ajude.
 Abraços!

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico JotaComm
Olá,

Em 29 de novembro de 2011 10:09, Moisés P. Sena moisesps...@gmail.comescreveu:


 Bom dia.


 Segue o select que aqui deu certo, qualquer coisa posta ai.

 select *
 from (
 select distinct(tp.mem) as mem,min(tp.data) as data
 from tmp.tb_tmp tp
 group by tp.mem
 having count(tp.mem)  1 --se quiser apenas os que tiveram modificacao
 ) as foo
 order by mem,data


 Quase funcionou, exceto por um detalhe:
 - Em 2011-11-21 15:34:00, mem 1054 volta a repetir. ele deveria ter tambem
 entrado no resultado, ou seja: eu  teria 2 saidas para 1054, uma as
 15:26:00 e outra as 15:34:00. Abaixo é o resultado que preciso ter:

   data   | mem
 ---+--
  2011-11-21 15:21:00 | 1038
  2011-11-21 15:22:00 | 1049
  2011-11-21 15:25:00 | 1052
  **2011-11-21 15:26:00 | 1054*

  2011-11-21 15:29:00 | 1065
  2011-11-21 15:30:00 | 1080
  2011-11-21 15:32:00 | 1073
  2011-11-21 15:33:00 | 1065
 * *2011-11-21 15:34:00 | 1054*

 De qualquer forma, valeu muito!!!


Não entendi. O que você precisa como resultado? É uma ou mais linhas por
mem? Qual é a lógica que precisa ser utilizada?




 Abraços,

 Espero que te ajude.
 Abraços!

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral




 --
 Moisés P. Sena
 (Analista e desenvolvedor de sistemas WEB e mobile)
 http://www.moisespsena.com
 http://linux.moisespsena.com

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



Abraços
-- 
JotaComm
http://jotacomm.wordpress.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Moisés P . Sena
Em 29 de novembro de 2011 10:56, JotaComm jota.c...@gmail.com escreveu:

 Olá,

 Não entendi. O que você precisa como resultado? É uma ou mais linhas por
 mem? Qual é a lógica que precisa ser utilizada?


A Lógica é esta:

Meu ambiente real:

Tenho um script que a cada 1 minuto grava na tabela usodememoria a data
atual (que o script esta executando) e quantidade de memoria RAM utilizada.
Esta tabela funciona como um log.

No final do dia, eu preciso gravar em uma outra tabela apenas o uso de
memoria alterado ou seja:

a) Durante o dia e gravei os seguintes usos de memoria:

  data   | mem
---+--
 2011-11-21 15:21:00 | 1038
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:23:00 | 1049
 2011-11-21 15:24:00 | 1049
 2011-11-21 15:25:00 | 1052
 2011-11-21 15:26:00 | 1054
 2011-11-21 15:27:00 | 1054
 2011-11-21 15:28:00 | 1054
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:31:00 | 1080
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
 2011-11-21 15:34:00 | 1049

Observe que:

1) As 15:21H a memoria usada era 1038
2) As 15:22H era 1049 e permaneceu assim ate 15:25H cujo valor foi para 1052
3) De 15:25H foi subindo ate as  15:33H com valor em 1065
4) Finalmente as 15:34H, a memoria usada voltou para 1049


No meu relatorio eu preciso remover os momentos em que o uso de memoria
permanece constante, como de 15:22H ate as 15:25H.

Na tabela final eu preciso gravar apenas os momentos que sofreram
alteracoes, e nao os momentos constantes, que neste caso, seria o resultado
abaixo:

  data   | mem
---+--
 2011-11-21 15:21:00 | 1038
* 2011-11-21 15:22:00 | 1049 **
 2011-11-21 15:25:00 | 1052
 *2011-11-21 15:26:00 | 1054 **
 2011-11-21 15:29:00 | 1065
* 2011-11-21 15:30:00 | 1080 **
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
* 2011-11-21 15:34:00 | 1049 ***

(*) momentos de memoria constante
(**) finalmente a memoria utilizada diminui

OBS.: os asteriscos (*) nao fazem parte do select, são apenas para
demonstrar o momentos de constancia da memoria.

Observe que os momentos em que a memoria permaneceu constante foram
removidos, ficando apenas os instantes de alteração no uso da memoria.

Abraços,
-- 
Moisés P. Sena
(Analista e desenvolvedor de sistemas WEB e mobile)
http://www.moisespsena.com
http://linux.moisespsena.com
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Marcone
Em 29 de novembro de 2011 20:17, Moisés P. Sena moisesps...@gmail.com 
escreveu:


               data           | mem
 ---+--
  2011-11-21 15:21:00 | 1038
  2011-11-21 15:22:00 | 1049 *

  2011-11-21 15:25:00 | 1052
  2011-11-21 15:26:00 | 1054 *

  2011-11-21 15:29:00 | 1065
  2011-11-21 15:30:00 | 1080 *

  2011-11-21 15:32:00 | 1073
  2011-11-21 15:33:00 | 1065
  2011-11-21 15:34:00 | 1049 **

.

Acho que uma coisa bem simples pode resolver:

select min(data) as 'data', mem
from tabela
group by mem
order by 1;

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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Moisés P . Sena
2011/11/29 Marcone marconepe...@gmail.com


 Acho que uma coisa bem simples pode resolver:

 select min(data) as 'data', mem
 from tabela
 group by mem
 order by 1;


Nao funcionou, Os registros abaixo nao apareceram no resultado:
   data   | mem

--+--

2011-11-21 15:33:00 | 1065
2011-11-21 15:34:00 | 1049


 veja o resultado

moi= select min(data) as data, mem
from usodememoria
group by mem
order by 1;
data | mem
-+--
 2011-11-21 15:21:00 | 1038
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:25:00 | 1052
 2011-11-21 15:26:00 | 1054
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:32:00 | 1073
(7 rows)


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




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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Bruno Silva
Tá feio pra caramba, mas seria mais ou menos isso?

select case when anteriormem then data else null end,case when
anteriormem then mem else null end as memo from ( select row_number()
OVER (ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) as
linha,first_value(mem) OVER ( ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
FOLLOWING ) as anterior,* from memo order by data ) as janela WHERE 1 is
not null ORDER BY memo;



2011/11/29 Moisés P. Sena moisesps...@gmail.com



 Talvez nao me expressei direito, mas veja bem, até as 15:32H o resultado
 esta correto, entretanto, as 15:33H o uso de memoria voltou para 1064 e em
 15:34 voltou para 1049.

 As 15:33H  e as 15:34H houve alteração nos valores da memoria e ele nao
 foi registrado no resultado.

 Vou explicar de outro jeito:

 Tenho um log que grava tudo, entretanto que obter apenas os momentos em
 que os dados deste log onde mem sofrem alteração, na ordem desta
 alteração.


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Bruno Silva
Corrigindo:
select case when anteriormem then data else null end as dia,case when
anteriormem then mem else null end as memo from ( select row_number()
OVER (ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING ) as
linha,first_value(mem) OVER ( ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
FOLLOWING ) as anterior,* from memo order by data ) as janela where
anteriormem ORDER BY memo;


Bruno E. A. Silva.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-29 Por tôpico Bruno Silva
Foi mal, nova versão:
select data,mem from
   (
  SELECT
   row_number()
OVER (ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
FOLLOWING ) as linha,
   first_value(mem)
OVER ( ORDER BY data ROWS BETWEEN 1 PRECEDING AND 1
FOLLOWING ) as anterior,*
  FROM memo order by data ) as janela
WHERE anteriormem
ORDER BY data;

   data | mem
-+--
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:25:00 | 1052
 2011-11-21 15:26:00 | 1054
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
 2011-11-21 15:34:00 | 1049
(8 rows)

Bruno E. A. Silva.
___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-24 Por tôpico Thiago
On 22/11/2011 13:56, Moisés P. Sena wrote:
 Boa tarde pessoal!

 os seguintes dados:

 $ select * from usodememoria;
data   | mem
 ---+--
   2011-11-21 15:21:00 | 1038
   2011-11-21 15:22:00 | 1049
   2011-11-21 15:23:00 | 1049
   2011-11-21 15:24:00 | 1049
   2011-11-21 15:25:00 | 1052
   2011-11-21 15:26:00 | 1054
   2011-11-21 15:27:00 | 1054
   2011-11-21 15:28:00 | 1054
   2011-11-21 15:29:00 | 1065
   2011-11-21 15:30:00 | 1080
   2011-11-21 15:31:00 | 1080
   2011-11-21 15:32:00 | 1073
   2011-11-21 15:33:00 | 1065
   2011-11-21 15:34:00 | 1054

 Preciso fazer um select que me retorne, agrupando conforme o valor de
 mem e a data, onde mem sofre alteração na data posterior. O resultado
 abaixo:

data   | mem
 ---+--
   2011-11-21 15:21:00 | 1038
   2011-11-21 15:22:00 | 1049
   2011-11-21 15:25:00 | 1052
   2011-11-21 15:26:00 | 1054
   2011-11-21 15:29:00 | 1065
   2011-11-21 15:30:00 | 1080
   2011-11-21 15:32:00 | 1073
   2011-11-21 15:33:00 | 1065
   2011-11-21 15:34:00 | 1054

 Já tentei de várias formas fazer com distinct e nao consegui chegar nem
 perto disto. Nao estou conseguindo montar a logica do select.

 Alguém pode me ajudar com isto??

 Abraços

Bom dia.

Segue o select que aqui deu certo, qualquer coisa posta ai.

select *
from (
select distinct(tp.mem) as mem,min(tp.data) as data
from tmp.tb_tmp tp
group by tp.mem
having count(tp.mem)  1 --se quiser apenas os que tiveram modificacao
) as foo
order by mem,data

Espero que te ajude.
Abraços!

___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


[pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-22 Por tôpico Moisés P . Sena
Boa tarde pessoal!

os seguintes dados:

$ select * from usodememoria;
  data   | mem
---+--
 2011-11-21 15:21:00 | 1038
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:23:00 | 1049
 2011-11-21 15:24:00 | 1049
 2011-11-21 15:25:00 | 1052
 2011-11-21 15:26:00 | 1054
 2011-11-21 15:27:00 | 1054
 2011-11-21 15:28:00 | 1054
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:31:00 | 1080
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
 2011-11-21 15:34:00 | 1054

Preciso fazer um select que me retorne, agrupando conforme o valor de mem
e a data, onde mem sofre alteração na data posterior. O resultado abaixo:

  data   | mem
---+--
 2011-11-21 15:21:00 | 1038
 2011-11-21 15:22:00 | 1049
 2011-11-21 15:25:00 | 1052
 2011-11-21 15:26:00 | 1054
 2011-11-21 15:29:00 | 1065
 2011-11-21 15:30:00 | 1080
 2011-11-21 15:32:00 | 1073
 2011-11-21 15:33:00 | 1065
 2011-11-21 15:34:00 | 1054

Já tentei de várias formas fazer com distinct e nao consegui chegar nem
perto disto. Nao estou conseguindo montar a logica do select.

Alguém pode me ajudar com isto??

Abraços,

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


Re: [pgbr-geral] Fwd: select com distinct no proximo valor alterado

2011-11-22 Por tôpico Paulo Vitor Bettini de Albuqerque Lima
select min(data), mem from usodememoria group by mem

Atenciosamente,
Paulo Vitor Bettini de Albuquerque Lima
http://about.me/paulolima



Em 22 de novembro de 2011 13:56, Moisés P. Sena moisesps...@gmail.comescreveu:

 Boa tarde pessoal!

 os seguintes dados:

 $ select * from usodememoria;
   data   | mem
 ---+--
  2011-11-21 15:21:00 | 1038
  2011-11-21 15:22:00 | 1049
  2011-11-21 15:23:00 | 1049
  2011-11-21 15:24:00 | 1049
  2011-11-21 15:25:00 | 1052
  2011-11-21 15:26:00 | 1054
  2011-11-21 15:27:00 | 1054
  2011-11-21 15:28:00 | 1054
  2011-11-21 15:29:00 | 1065
  2011-11-21 15:30:00 | 1080
  2011-11-21 15:31:00 | 1080
  2011-11-21 15:32:00 | 1073
  2011-11-21 15:33:00 | 1065
  2011-11-21 15:34:00 | 1054

 Preciso fazer um select que me retorne, agrupando conforme o valor de
 mem e a data, onde mem sofre alteração na data posterior. O resultado
 abaixo:

   data   | mem
 ---+--
  2011-11-21 15:21:00 | 1038
  2011-11-21 15:22:00 | 1049
  2011-11-21 15:25:00 | 1052
  2011-11-21 15:26:00 | 1054
  2011-11-21 15:29:00 | 1065
  2011-11-21 15:30:00 | 1080
  2011-11-21 15:32:00 | 1073
  2011-11-21 15:33:00 | 1065
  2011-11-21 15:34:00 | 1054

 Já tentei de várias formas fazer com distinct e nao consegui chegar nem
 perto disto. Nao estou conseguindo montar a logica do select.

 Alguém pode me ajudar com isto??

 Abraços,

 --
 Moisés P. Sena
 (Analista e desenvolvedor de sistemas WEB e mobile)
 http://www.moisespsena.com
 http://linux.moisespsena.com

 ___
 pgbr-geral mailing list
 pgbr-geral@listas.postgresql.org.br
 https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


___
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral