Ayuda con consulta

From: Jose Gomez-Dans <jgomezdans(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ayuda con consulta
Date: 2009-04-11 15:21:21
Message-ID: 91d218430904110821l43fcc383n4c8a2aca204bad9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola,

Soy bastante bisoño en esto del SQL. Estoy intentando hacer una consulta que
calcula el un índice de riesgo de incendios forestales (índice de Nesterov,
hay información aquí: <http://fire.cambriacsd.org/nesterov.php>). En
esencia, tengo una tabla con una serie de variables climáticas diarias. Para
cada día, calculo un valor, y lo sumo al valor del índice del día anterior,
a no ser que se cumpla una condición en una columna (precipitación>3mm), en
cuyo caso, el índice se pone a 0. Hasta ahora, he viniendo haciendo este
cálculo fuera de Postgres, pero me gustaría hacerlo en una consulta. En C,
mi algoritmo es algo así como el código de abajo (es muy sencillo). Cómo
puedo implementar esto en SQL?

float *nesterov_index ( float *temp, float *dew_point, float *prec )
{
/********************************************************/
/* A function to calculate the Nesterov Index (NI) */
/* from daily temperature, dew point and precipitation */
/* Function by J Gomez-Dans (KCL) */
/********************************************************/

int doy ;
float *nesterov = (float*) malloc ( sizeof(float)*365) ; /*All years have
365 days*/
for (doy=0; doy<365; doy++) {
if (prec[doy]<3.)
{
nesterov[doy] = nesterov[doy] + temp[doy]*(temp[doy]-dew_point[doy])
;
}
else
{ /*Rain, reset index */
nesterov[doy] = 0.0 ;
}
}
return nesterov ;
}

Muchas gracias por vuestra ayuda!
J

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Xavi 2009-04-11 17:47:15 Re: Ayuda con consulta
Previous Message Espartano 2009-04-11 03:19:57 Re: TIMESTAMP