> 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