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
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 |