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@postgresql.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
-
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