Re: Creando funciones

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

In response to

Responses

Browse pgsql-es-ayuda by date

  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