Re: Ayuda con cosulta

From: Anthony Sotolongo <asotolongo(at)gmail(dot)com>
To: "Guillermo E(dot) Villanueva" <guillermovil(at)gmail(dot)com>
Cc: Lazaro Garcia <lazaro3487(at)gmail(dot)com>, npolanco(at)cuij(dot)edu(dot)cu, pgsql-es-ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con cosulta
Date: 2016-10-05 12:19:14
Message-ID: c7a50374-bab7-9326-2274-8638f91243be@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Como función ventana si lo necesita si, pero cual es la partición lo
debe decidir el, puede que hayan mas campos en la tabla!!!

y cuando descubra las potencialidades de las funciones ventanas se ponga
creativo, jeje

es solo un ejemplo y está con la partición de la tabla completa para
que el lo ajuste

Saludos

On 05/10/16 08:00, Guillermo E. Villanueva wrote:
> Hola, nunca usé lag() pero no debería ser con partición por el paciente?
>
> El 4 de octubre de 2016, 15:20, Anthony Sotolongo
> <asotolongo(at)gmail(dot)com <mailto:asotolongo(at)gmail(dot)com>> escribió:
>
> Hola Polanco, parece que tienes en la mente resolverlo con
> triggers, lo cual es válido y lo que te dice Lazaro es uno de los
> caminos a resolver la sitaución, pero también puedes calcularlo en
> un SELECT utilizando *funciones ventanas* para la variación diaria
> y para el otro campo una subconsulta, si tienes muchos datos,
> puede que algún indice en consulta te pueda hacer un poco mas
> rápida la consulta.
>
> Mira esta consulta:
>
> SELECT r.*, COALESCE ( peso - lag(peso,1) over ( order by fecha
> ),0) , COALESCE ( peso- (select peso from registro where
> consulta='SI' and registro.fecha<r.fecha order by fecha desc limit
> 1 ),0)
> FROM registro r
>
> *registro* es el nombre de tu tabla
>
> ojala des pie con bola, jeje
>
>
> saludos
>
> On 04/10/16 14:26, Lazaro Garcia wrote:
>> Me parece que lo que debes es crear un trigger before insert,
>> sobre esa tabla, de forma tal que en la función que lo implemente
>> puedas buscar el ultimo peso del paciente y modificar el registro
>> NEW.incrmento_diario en base al cálculo realizado. Esta página te
>> puede ser de ayuda en el tema de los triggers. Saludos.
>> http://www.postgresql.org.es/node/301
>> <http://www.postgresql.org.es/node/301> -----Mensaje
>> original----- De: pgsql-es-ayuda-owner(at)postgresql(dot)org
>> <mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org>
>> [mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org
>> <mailto:pgsql-es-ayuda-owner(at)postgresql(dot)org>] En nombre de
>> npolanco(at)cuij(dot)edu(dot)cu <mailto:npolanco(at)cuij(dot)edu(dot)cu> Enviado el:
>> martes, 4 de octubre de 2016 12:55 Para:
>> pgsql-es-ayuda(at)postgresql(dot)org
>> <mailto:pgsql-es-ayuda(at)postgresql(dot)org> Asunto: [pgsql-es-ayuda]
>> Ayuda con cosulta Importancia: Alta Hola a todos, quería ver si
>> me podrían ayudar con una consulta que llevo rato tratando de
>> hacerla pero no doy pie con bola, no hay modo que logre crearla,
>> si alguno me pudiera ayudar. El problema es el siguiente: Tengo
>> una tabla con datos como estos: Paciente Peso Fecha Consulta
>> Hisomi 89 24/07/2014 SI Hisomi 89.1 25/07/2014 Hisomi 89
>> 26/07/2014 Hisomi 89 27/07/2014 Hisomi 89.2 28/07/2014 Hisomi
>> 89.15 29/07/2014 Hisomi 89.18 30/07/2014 Hisomi 89.21 31/07/2014
>> SI Hisomi 89.24 01/08/2014 Hisomi 89.27 02/08/2014 Hisomi 89.3
>> 03/08/2014 Hisomi 89.33 04/08/2014 Hisomi 89.36 05/08/2014 Hisomi
>> 89.39 06/08/2014 Hisomi 89.42 07/08/2014 SI Hisomi 89.45
>> 08/08/2014 Hisomi 89.48 09/08/2014 Hisomi 89.51 10/08/2014 Hisomi
>> 89.54 11/08/2014 Hisomi 89.57 12/08/2014 Donde llevo el registro
>> de un paciente dado de su variacion de peso diario y quisiera
>> agregar 2 columnas mas que almacene al insertar un registro nuevo
>> en una la diferencia de peso de ese con respecto al dia anterior
>> y la otra la diferencia de peso entre ese dia y el dia de la
>> consulta anterior, algo asi como esto. Paciente Peso Fecha
>> Consulta Incrmento_diario Incremento_Consulta Hisomi 89
>> 24/07/2014 SI 0 0 Hisomi 89.1 25/07/2014 0.1 0.1 Hisomi 89
>> 26/07/2014 -0.1 0 Hisomi 89 27/07/2014 0 0 Hisomi 89.2 28/07/2014
>> 0.2 0.2 Hisomi 89.15 29/07/2014 -0.05 0.15 Hisomi 89.18
>> 30/07/2014 0.03 0.18 Hisomi 89.21 31/07/2014 SI 0.03 0.21 Hisomi
>> 89.24 01/08/2014 0.03 0.03 Hisomi 89.27 02/08/2014 0.03 0.06
>> Hisomi 89.3 03/08/2014 0.03 0.09 Hisomi 89.33 04/08/2014 0.03
>> 0.12 Hisomi 89 05/08/2014 -0.33 -0.21 Hisomi 89.1 06/08/2014 0.1
>> -0.11 Hisomi 89.15 07/08/2014 SI 0.05 -0.06 Hisomi 89.15
>> 08/08/2014 0 0 Hisomi 89.24 09/08/2014 0.09 0.09 Hisomi 89.3
>> 10/08/2014 0.06 0.15 Hisomi 89.3 11/08/2014 0 0.15 Hisomi 89.57
>> 12/08/2014 0.27 0.42 Los dias de consulta no son cada 7 dias, el
>> intervalo es variado, solo que aquí coincide con frecuencia
>> semanal. Gracias de ante mano. Saludos - Enviado a la lista de
>> correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
>> <mailto:pgsql-es-ayuda(at)postgresql(dot)org>) Para cambiar tu suscripci
>> n: http://www.postgresql.org/mailpref/pgsql-es-ayuda
>> <http://www.postgresql.org/mailpref/pgsql-es-ayuda> - Enviado a
>> la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
>> <mailto:pgsql-es-ayuda(at)postgresql(dot)org>
>> )
>> Para cambiar tu suscripci�n:
>> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>> <http://www.postgresql.org/mailpref/pgsql-es-ayuda>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Magi Franquesa 2016-10-06 08:00:25 campos timestamp
Previous Message Guillermo E. Villanueva 2016-10-05 11:00:02 Re: Ayuda con cosulta