Re: bug al agrupar postgres 9.5 y 9.6?

From: Hellmuth Vargas <hivs77(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Lista Postgres ES <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: bug al agrupar postgres 9.5 y 9.6?
Date: 2017-02-16 16:53:41
Message-ID: CAN3Qy4qg02ogWyGcUfNgZgw2eiMm_kDfxM43nEvjT=Mo-tnaTw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola Alvaro

Gracias por la respuesta; si tiene razon: agrupe solo por id y siguió
funcionado... :-)

select a.id,a.identificacion,fechaactivacion,min(b.fecha) as minima from
usuario as a join adherencia as b on a.id=b.usuario_id
group by 1

HashAggregate (cost=2217.64..2220.74 rows=1035 width=34) (actual
time=240.780..241.232 rows=941 loops=1)
Output: a.id, a.identificacion, a.fechaactivacion, min(b.fecha)
Group Key: a.id
Buffers: shared hit=91 read=1204
-> Hash Join (cost=92.73..2099.46 rows=118182 width=34) (actual
time=1.659..175.634 rows=121101 loops=1)
Output: a.id, a.identificacion, a.fechaactivacion, b.fecha
Hash Cond: (b.usuario_id = a.id)
Buffers: shared hit=91 read=1204
-> Seq Scan on adherencia b (cost=0.00..1563.55 rows=118182
width=16) (actual time=0.039..58.533 rows=121101 loops=1)
Output: b.id, b.fecha, b.termina, b.tiempoadherido, b.inicia,
b.usuario_id, b.pausaactual_id
Buffers: shared hit=5 read=1204
-> Hash (cost=89.11..89.11 rows=1035 width=26) (actual
time=1.608..1.608 rows=1035 loops=1)
Output: a.id, a.identificacion, a.fechaactivacion
Buckets: 2048 Batches: 1 Memory Usage: 69kB
Buffers: shared hit=86
-> Seq Scan on usuario a (cost=0.00..89.11 rows=1035
width=26) (actual time=0.010..1.021 rows=1035 loops=1)
Output: a.id, a.identificacion, a.fechaactivacion
Buffers: shared hit=86
Planning time: 0.220 ms
Execution time: 241.635 ms

El 16 de febrero de 2017, 11:46, Alvaro Herrera<alvherre(at)2ndquadrant(dot)com>
escribió:

> Hellmuth Vargas escribió:
> > Hola Lista
> >
> > Al ejecutar la siguiente consulta sin agrupar por el campo
> fechaactivacion
> > uno esperaria el siguiente error:
> >
> > ERROR: column "a.fechaactivacion" must appear in the GROUP BY clause or
> be
> > used in an aggregate function
> >
> > Pero oh sorpresa, me lleve cuando el motor la ejecuto de forma
> > satisfactoria.
>
> Funciona porque el sistema sabe que "id" es llave primaria de la tabla
> a, por lo tanto fechaactivación (de la misma tabla) tiene necesariamente
> que ser un único valor por grupo.
>
> > Trate de recrearlo con tablas en memoria (SELECT * from (VALUES())..)
> pero
> > si genera error a no agrupar por el campo *fechaactivacion*.
>
> Acá no funciona porque no hay llave primaria que permita hacer la
> deducción.
>
> --
> Álvaro Herrera https://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>

--
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2017-02-16 22:20:16 Re: pg_xlog se puede inicializar ?
Previous Message Alvaro Herrera 2017-02-16 16:46:43 Re: bug al agrupar postgres 9.5 y 9.6?