Ha rehacer las querys ....

Gracias!

El 18 de noviembre de 2011 12:15, Guillermo O. Burastero <[email protected]
> escribió:

> Hola
>
> Tu consulta es en general irresoluble y desde el punto de vista
> semántico ambigua.
> El agrupamiento implica obtener UN SOLO REGISTRO por CADA DIFERENTE
> CLAVE DE AGRUPAMIENTO, por lo tanto en la salida SOLO PUEDEN estar los
> campos de la clave de agrupamiento o FUNCIONES DE AGREGADO SOBRE LAS
> DEMÁS COLUMNAS. Ej suma o promedio de expresiones numéricas sobre las
> demás columnas
>
> Si tengo tabla tPagos (idPersona, fecha, pago) y quiero saber la
> totalidad de los pagos por persona (idPersona) hago
>
> SELECT idPersona, summ (pago) from tPagos GROUP by idPersona ORDER by
> idPersona
>
> Fijate que NO TENDRÍA SENTIDO si hiciera porque una misma persona
> puede tener pagos en diferentes fechas.
>
> SELECT idPersona, fecha, summ (pago) from tPagos GROUP by idPersona
> ORDER by idPersona
>
> Si en cambio tiene sentido:
>
> SELECT idPersona, fecha, summ (pago) from tPagos GROUP by idPersona,
> fecha  ORDER by idPersona, fecha
>
> en donde cada registro de salida tiene la suma de todos los pagos
> hechos a una persona en una determinada fecha (ya que fecha es también
> campo de agrupamiento).
>
> Mirá:
> http://www.postgresql.org/docs/9.1/static/sql-select.html#SQL-GROUPBY
>
>
> 2011/11/18 felipe fernandez <[email protected]>:
> > Hola
> > Estoy migrando una base de datos de una web de mysql a postgresql. Los
> datos
> > ya están pero las querys que tiene group by son un dolor de cabeza.
> > Un ejemplo
> > SELECT  users.id, users.username, users.email, users.realname
> >
> > FROM follow la
> > JOIN users ON users.id = la.user_id
> > WHERE users.deleted = 0
> > GROUP BY users.id
> > ERROR:  column "users.username" must appear in the GROUP BY clause or be
> > used in an aggregate function
> > LÍNEA 1: SELECT  users.id, users.username, users.email, users.realnam...
> > He probado a poner DISTINCT quitando el GROUP BY pero el resultado es
> > erróneo porque muestra TODAS los registros.
> > ¿Existe alguna manera de que sólo se puede agrupar por un único campo del
> > select?
> >
> >
> > --
> > Salu2
> >
> > Felipe Fernández Rguez
> > "Uno se alegra de resultar útil"  Andrew Martin  "El hombre bicentenario"
> > Isaac Asimov.
> > "Documentation is like sex: when it is good, it is very, very good; and
> when
> > it is bad, it is better than nothing."
> >
>
>
>
> --
> Guillermo O. Burastero
> Usuario GNU/Linux #84879 - http://counter.li.org/
> Bahía Blanca, Buenos Aires, Argentina
> Tel. +54 (291) 454-6132 - Móvil [15] 574-3173
> MSN: [email protected]
> ICQ: 97148268
> -
> Enviado a la lista de correo pgsql-es-ayuda ([email protected]
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>



-- 
Salu2

Felipe Fernández Rguez
"Uno se alegra de resultar útil"  Andrew Martin  "El hombre bicentenario"
Isaac Asimov.
"Documentation is like sex: when it is good, it is very, very good; and
when it is bad, it is better than nothing."

Responder a