From: | Miguel Rodríguez Penabad <penabad(at)gmail(dot)com> |
---|---|
To: | Jorge Tornero <jorge(dot)tornero(at)cd(dot)ieo(dot)es> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Creando funciones |
Date: | 2010-05-27 14:03:04 |
Message-ID: | AANLkTilVulv42VhNNvxWZ1rvwXxz7zGgK5zGyoczHvuH@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
> Ahora bien, lo que quiero es crear una función, por ejemplo:
>
> regresion(parametro1,parametro2)
>
> que me ahorre el
>
> exp(regr_intercept(ln(peso),ln(talla/10.0))),regr_slope(ln(peso),ln(talla/10.0)),regr_r2(ln(peso),ln(talla/10.0))
>
> cada vez que hago una consulta y de esta manera las consultas de este
> tipo fueran:
>
> select regresion(talla,peso) from biologicos where.......;
Entonces la función regresion devolverá algo de tipo numérico (double
precision, diría yo), no TABLE.
> para ello, tirando de manuales, he hecho algo así:
>
> DROP FUNCTION IF EXISTS regresion(int,numeric);
> CREATE FUNCTION regresion(int,numeric)
> RETURNS TABLE(A double, B double, R2 double)
Prueba a cambiar la línea anterior por RETURNS double
> AS $$select
> exp(regr_intercept(ln($2),ln($1/10.0))),regr_slope(ln($2),ln($1/10.0)),regr_r2(ln($2),ln($1/10.0))$$
> LANGUAGE SQL;
>
Saludos.
--
Miguel Rodríguez Penabad
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Rodríguez Penabad | 2010-05-27 14:08:55 | Re: Creando funciones |
Previous Message | Guillermo Villanueva | 2010-05-27 12:05:18 | Re: Creando funciones |