Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

Next:From: Miguel Rodríguez PenabadDate: 2010-05-27 14:08:55
Subject: Re: Creando funciones
Previous:From: Guillermo VillanuevaDate: 2010-05-27 12:05:18
Subject: Re: Creando funciones

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group