Re: Categories and subcategories : more details

From: Josh Berkus <josh(at)agliodbs(dot)com>
To: Rachel Coin <rachel(at)derniere-minute(dot)org>
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: Categories and subcategories : more details
Date: 2001-03-20 17:43:20
Message-ID: 3AB796B8.AD87AE95@agliodbs.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-admin pgsql-sql

Rachel,

See below:

> Examples :
>
> table CATEG :
> ida categ
> 1 X
> 2 Y
> 3 Z
>
> table SUBCATEG :
> idb subcateg ida
> 1 x1 1
> 2 x2 1
> 3 x3 1
> 4 x4 1
> 5 y1 2
> 6 y2 2
> 7 z1 3
>
> I 'd like to obtain a table with maximum 2 subcateg per categ :
>
> table result :
>
> categ subcateg
> X x1
> X x2
> Y y1
> Y y2
> Z z1
>

Without LIMIT in subselects, you're in performance hell as far as doing
the above is concerned. Frankly, I can't see any way to do it that
doesn't involve a PL/pgSQL procedure that generates a temporary table,
and has to run once for every row in your result set. I'll post code
later if nobody comes up with a better solution.

If you knew all of your categories in advance, you could do this via an
annoying UNION statement. I'm assuming, however, that it needs to be
dynamic.

-Josh Berkus

--
______AGLIO DATABASE SOLUTIONS___________________________
Josh Berkus
Complete information technology josh(at)agliodbs(dot)com
and data management solutions (415) 565-7293
for law firms, small businesses fax 621-2533
and non-profit organizations. San Francisco

In response to

Browse pgsql-admin by date

  From Date Subject
Next Message Tom Lane 2001-03-20 17:52:48 Re: Re: PostgreSQL; Strange error
Previous Message Kelcey Kornegay 2001-03-20 17:34:53 Disk space

Browse pgsql-sql by date

  From Date Subject
Next Message Marios Moutzouris 2001-03-20 19:23:04 rows equal
Previous Message Rachel Coin 2001-03-20 16:53:38 Categories and subcategories : more details