Re: Expresiones arbitrarias en GROUP BY

From: Jorge Tornero <jorge(dot)tornero(at)cd(dot)ieo(dot)es>
To: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Expresiones arbitrarias en GROUP BY
Date: 2011-01-28 07:45:35
Message-ID: 1296200735.31093.18.camel@linux-lqqb.site
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos,

después de probar vuestras soluciones (alguna de las cuales, al menos en
postgresql 8.4 no funciona), he llegado a la siguiente solución, por si
fuera de vuestro interés (que a mí me parece más sencilla que las otras
alternativas, salvo que algún ser humano con más conocimientos de
postgres me corrija):

SELECT CASE WHEN PUERTO='VIGO' THEN VIGO ELSE 'NO VIGO' END AS
PUERTO_BASE, AVG(potencia) from prueba group by puerto_base;

Es importante establecer un alias para la columna que generamos con el
CASE, porque si no se nos queja del típico error de que la columna
puerto o la que sea no aparece en el group by o que ha de aparecer en un
agrgado.

Muchas gracias por vuestra ayuda, saludos

Jorge Tornero

El mar, 25-01-2011 a las 14:15 +0100, p valdes escribió:
> ... de hecho, ahora que me fijo, la expresión puede mejorarse un poco
> más aún así...
>
> SELECT vigo.puerto, avg(vigo.potencia)::numeric(3,0) media FROM vigo
> WHERE vigo.puerto::text = 'vigo'::text GROUP BY vigo.puerto union all
> select 'NO Vigo' puerto,avg(potencia)::numeric(3,0) media from vigo
> where puerto !='vigo';
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org)
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda

--
-----------------------------------------
Jorge Tornero Núñez
Centro Oceanográfico de Cádiz
Instituto Español de Oceanografía
Puerto Pesquero - Muelle de Levante, s/n
11006 Cádiz - España
Tel. +34 956294189
Fax. +34 956294232
www.ieo.es

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alfredo Torres 2011-01-28 11:19:51 Fwd: Fw: FW: POR FAVOR REENVIALA, NO TE TARDAS CASI NADA..!
Previous Message Fernando Siguenza 2011-01-28 05:13:18 Re: Consulta Fechas y between