From: | Alvaro Herrera <alvherre(at)2ndquadrant(dot)com> |
---|---|
To: | Jorge Barzola <jorgebarzola(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Generar registros |
Date: | 2019-05-16 17:16:47 |
Message-ID: | 20190516171647.GA22587@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Jorge Barzola escribió:
> Obtengo de un select con mas de 30 mil registros con la la siguiente
> información (para el ejemplo solo muestro un registro):
>
> NRO_DOC | EDAD | MTO_TASA | MTO_ABO | LX | DX |
> 20160978 | 65 | 0.006518349 | 6.83 | 1 | 0.006518349|
>
> El registro de ejemplo tiene como edad 65 años por tal segun TBL_TASA se
> debe generar 46 registros aumentando la edad de uno en uno y obteniendo la
> tasa correspondiente a la edad.
Usa generate_series() para generar el rango de edades. Algo así:
select ... FROM generate_series(65, 65+46) AS edad, ...
Agrega funciones ventana (LAG() para el registro anterior) para calcular
los valores de las otras columnas.
Como los valores 65 y 46 vienen de una tabla, los puedes poner en otro
ítem del from, algo así:
SELECT ...
FROM TBL_TASA,
generate_series(EDAD, EDAD + CANTIDAD) AS edad
WHERE
etc.
--
Álvaro Herrera https://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
From | Date | Subject | |
---|---|---|---|
Next Message | Jorge Barzola | 2019-05-16 21:03:23 | Re: Generar registros |
Previous Message | Jorge Barzola | 2019-05-16 16:48:46 | Generar registros |