Fwd: Re: Table Pivot - Mailing list pgsql-sql

From V. Cekvenich
Subject Fwd: Re: Table Pivot
Date
Msg-id 20030216165111.64562.qmail@web40605.mail.yahoo.com
Whole thread Raw
List pgsql-sql
--- "V. Cekvenich" <vc@basebeans.com> wrote:
> Date: Sun, 16 Feb 2003 08:50:19 -0800 (PST)
> From: "V. Cekvenich" <vc@basebeans.com>
> Subject: Re: [SQL] Table Pivot
> To: Christoph Haller <ch@rodos.fzk.de>
> 
> Thanks, I read Rozenshtein's book on Otpimizing
> Advanced SQL, and I am reading page 378 of Celkos
> SQl
> 4 Smarties.
> 
> I understand your case 1.
> What is case 2 and 3? Is there a link to find more,
> or
> maybe you can give me a bit more direction please?
> 
> Vic
> 
> --- Christoph Haller <ch@rodos.fzk.de> wrote:
> > >
> > > How do you do a table Pivot in PostgreSQL?
> > >
> > I'll post you this old mail:
> > 
> > 
> > > > I saw something that might somewhat a bit more
> > > > flexible solution using SQL. I don't know if
> it
> > works
> > > > in PostgreSQL. I saw it at the MySQL site.
> > > >
> > > >   The following is the URL:
> > > >  
> > http://www.mysql.com/articles/wizard/index.html
> > > >
> > > >   Has anyone tried this on a PostgreSQL
> database
> > ?
> > 
> > Actually, I'm rather annoyed with the article
> > author.   He first claims
> > that Joe Celko reccommends expensive add-on
> software
> > for crosstabs (Joe
> > does not) and then goes on to use one of Joe's own
> > solutions.  However,
> > given the author's thouroughness otherwise, I'm
> sure
> > the innaccuracy is
> > due to some kind of misunderstanding.
> > 
> > There are, in fact, 3 simple SQL-based solutions
> to
> > the crosstab
> > problem.  Which one you use depends on the shape
> of
> > your data.  I am
> > not going to cover them in detail here (I'll save
> > that for an article)
> > but to sum up:
> > 
> > 1) The SUM(CASE()) statement method, as outlined
> in
> > the article, which
> > is good for crosstabs expecting small numbers of
> > columns.  Or, in the
> > case of this article, good for RDBMS which do not
> > support subselects.
> > 
> > 2) The LEFT JOIN + Sub-Select method, which is
> good
> > for crosstabs with
> > lots of columns but not that many rows in the
> > crosstabbed table.
> > 
> > 3) The "crosstab reference grid" method, which is
> > good for large tables
> > and crosstabs with lots of columns, but requires
> > setup and maintainence
> > by trigger.
> > 
> > Joe Celko covers these 3 types in "SQL for
> > Smarties".     I will write
> > a PostgreSQL implementation in a later article.
> > 
> > -Josh Berkus
> > 
> > I have an extended example using the 1) method
> > implemented in plpgsql.
> > Let me know if you want to have a look at it.
> > 
> > Regards, Christoph
> > 
> > 
> > 
> > ---------------------------(end of
> > broadcast)---------------------------
> > TIP 1: subscribe and unsubscribe commands go to
> majordomo@postgresql.org
> 
> 
> =====
> 
> 


=====



pgsql-sql by date:

Previous
From: STashlitsky@JEFCO.com
Date:
Subject: convert from an integer to a date
Next
From: "betty"
Date:
Subject: Re: trigger after with cursor