Re: Re[2]: Filas a columnas

From: "Jaime Casanova" <systemguards(at)gmail(dot)com>
To: Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe>
Cc: "Eugenio Segura" <eugenio(dot)segura(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Re[2]: Filas a columnas
Date: 2007-02-20 17:39:46
Message-ID: c2d9e70e0702200939x6a2b0798i97484910cd98695a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On 1/24/07, Miguel Bernilla Sánchez <mbernilla(at)sedapal(dot)com(dot)pe> wrote:
>
> ============
> Con fecha Miércoles, 24 de Enero de 2007, 04:13:57 p.m., escribió:
>
> > me da error de sintaxis cerca del periodo1 q sera?
> Lo había probado en Oracle y todo OK. :(
>
> Lo simulé en postgreSQL y efectivamente me mostraba error en
> sintaxis... Modifiqué el queryl... y ahora sí 100% garantizado que
> corre en PostgreSQL.
>
> select v2.nombre,v2.materia,max(v2.periodo1),max(v2.periodo2),max(v2.periodo3)
> from (select v.nombre,v.materia,
> case when v.periodo = 0 then v.nota end as periodo1,
> case when v.periodo = 1 then v.nota end as periodo2,
> case when v.periodo = 2 then v.nota end as periodo3
> from (select nombre , materia ,periodo,nota
> from alumno) v) v2
> group by v2.nombre,v2.materia;
>

no habia este mail antes, me pregunto porque les gustan tanto las
subconsultas ;)

aqui hay una version simplificada del select:

select nombre, materia,
sum(case when periodo = 0 then nota else 0 end) as periodo1,
sum(case when periodo = 1 then nota else 0 end) as periodo2,
sum(case when periodo = 2 then nota else 0 end) as periodo3
from notas_alumnos
group by 1, 2;

--
Atentamente,
Jaime Casanova

"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jaime Casanova 2007-02-20 17:47:15 Re: sobre ADT
Previous Message Alvaro Herrera 2007-02-20 17:39:04 Re: sobre ADT