Converting Rows to Columns

From: Joshua Berry <yoberi(at)gmail(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Converting Rows to Columns
Date: 2009-05-05 14:38:44
Message-ID: EE5CE67E-FFBF-45E1-85E8-28FD0FCCA98F@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Greetings all,

I know that this is an elementary question, so I'm just asking for a
pointer in the right direction.

I have a query like this that tries to link Retail shops (from the
table aliased as 'a') to sales reps (from the table aliased as 'e')
that service the given Retail shop:

select a.id_pdv, e.apellido ||', ' || e.nombre as seller_name from
tbl_pdvs a join tbl_circuitos b using (id_circuito) join
tbl_frecuencias c on b.id_circuito = c.id_circuito join tbl_rutas d on
c.id_ruta = d.id_ruta join tbl_vendedores e on d.vendedor =
e.id_vendedor order by a.id_pdv limit 4;

id_pdv | seller_name
---------+-------------------
1000001 | COLON, CRISTOBOL
1000001 | LOPEZ, CARLOS
1000002 | COLON, CRISTOBOL
1000002 | LUGO, FERNANDO

As you can see, there are two salesmen that service this shop.

What I need is to be able to create a report that has each unique
id_pdv as a row of the result set, with three columns available to
show up to three salemen that are assigned to the route.

So this would give something like this:

id_pdv | seller_name1 | seller_name2 | seller_name3
---------+------------------+----------------+----------------
1000001 | COLON, CRISTOBOL | LOPEZ, CARLOS | (\N or '')
1000002 | COLON, CRISTOBOL | LUGO, FERNANDO | (\N or '')

Note that the order of the sellers does not matter.

Any tips? I've googled 'sql convert rows to columns' and got some
results that appear to be mssql specific. On Stackoverflow there is an
example of how to convert columns to rows using UNION, but not visa
versa.

Thanks in advance!

Joshua

Joshua Berry
Software Engineer
Opentech, S.A.
+(595 21) 282557 Work
+(595) 981 330 701 Mobile

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Relyea, Mike 2009-05-05 14:53:04 Re: Converting Rows to Columns
Previous Message Devrim GÜNDÜZ 2009-05-05 12:39:44 Re: bizgres