| From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
|---|---|
| To: | Mario Jiménez Carrasco <mario(dot)carrasco(at)gmail(dot)com> |
| Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
| Subject: | Re: Función que reciba un set o el resultado de una consulta. |
| Date: | 2012-02-29 01:15:48 |
| Message-ID: | 1330477923-sup-2650@alvh.no-ip.org |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-es-ayuda |
Excerpts from Mario Jiménez Carrasco's message of mar feb 28 18:07:12 -0300 2012:
> Hola amigos.
> Buen día...
>
> me encuentro en una situación en la que pido su apoyo... ya he indagado en
> la web y no he encontrado información al respecto...
> He creado una función en la cual necesito recibir los registros de una
> tabla (incluso a través de una tabla temporal)... en la definición lo tengo
> de la siguiente forma...
Lo que estás haciendo es reinventar esta rueda:
select avg(valores) from tabla;
Más generalmente, lo que tú quieres es una función de agregación. Mira
la documentación sobre "aggregates". En Postgres --estás de suerte-- es
posible crear nuevas funciones de agregación en forma muy sencilla;
basta definir una condición inicial, una función de "transición" (es
decir, qué hacer con cada registro que se agrega) y una función de
"finalización" (la que, en tu ejemplo, toma la suma final y hace la
división).
--
Álvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Mario Jiménez Carrasco | 2012-02-29 01:26:49 | Re: [pgsql-es-ayuda] Función que reciba un set o el resultado de una consulta. |
| Previous Message | Guillermo Villanueva | 2012-02-28 22:43:12 | Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Re: [pgsql-es-ayuda] [pgsql-es-ayuda] sobre imágenes |