Re: Consulta SQL

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Antonio Antonio <a2076totonio(at)yahoo(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Consulta SQL
Date: 2008-05-15 15:59:50
Message-ID: 20080515155950.GD8221@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Antonio Antonio escribió:

> select a1.ida,
> a1.coste,
> a1.dominio
> from tabla1 as a1,
> tabla2 as a2
> tabla3 as a3
> where a1.id = a2.id
> and a2.id_c = a3.id_c
> and (a1.cuota > a1.consumido)
> ....
> ....
> group by a1.dominio
> order by a1.coste DESC

Si no entiendo mal, esta consulta es válida de acuerdo al estándar SQL
sólo si a1.dominio es una llave única(*). Postgres no es capaz de
determinar eso, y por lo tanto rechaza la consulta (debes especificar
todas las columnas en el group by); en cambio MySQL se comporta peor y
lo permite, mostrándote resultados posiblemente erróneos.

(*) Creo que hay una formulación posible que es menos estricta, que
hablaría de las dependencias funcionales de todos los otros campos en la
lista de resultados en el conjunto de campos mencionados en el GROUP BY,
pero eso es aún más difícil de determinar que lo que digo arriba.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Raul Andres Duque 2008-05-15 16:37:52 A donde se fué el directorio "share/locale" en 8.3
Previous Message Jaime Casanova 2008-05-15 15:38:47 Re: Certificación en postgresql