> 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
-
Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org)
Para cambiar tu suscripción:
http://www.postgresql.org/mailpref/pgsql-es-ayuda

Responder a