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
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? |