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