Re: feature request START WITH ... CONNECT BY

From: Jean-Paul ARGUDO <jean-paul(dot)argudo(at)idealx(dot)com>
To: Ola Sundell <ola(at)miranda(dot)org>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: feature request START WITH ... CONNECT BY
Date: 2002-02-13 12:04:29
Message-ID: 20020213130429.A7983@singer.ird.idealx.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I jump again on this mail to ask for SQL help. Since I've not found a list on
pgsql-users or something like that, I apologize to post it to hackers..

So.. I'm porting from Oracle to PG. I have many CONNECT BY queries, luckyly,
only 2 tables are hierarchical. I've adopted OpenACS solution, since I am sure
it is the best way to do with that problem.

But, I found a problem wich I have no brain left today to resolve.
I port following Oracle CONNECT BY statment:

--ORACLE QUERY
--
--select
-- sum(t01_caf) SCAF,
-- sum(t01_itm_cnt) SART
--from T01_&DateData
--start with T01_upr_lvl_typ = &TypNiv and T01_upr_lvl_nbr = &Niv
--connect by prior T01_lvl_typ = T01_upr_lvl_typ and prior T01_lvl_nbr =
T01_upr_lvl_nbr
--
-- The execution in the Oracle DB returns:
--
--
-- SCAF SART
------------ ----------
--40164802,4 1404296
--
-- with variables &TypNiv = 0 et &Niv = 0
--
-- PG port:
--
\set TypNiv 0
\set Niv 0
--
select
sum(t01_caf) as SCAF,
sum(t01_itm_cnt) as SCAF
from
t01_20011231
where
strpos(t01_tree_sortkey,(select t01_tree_sortkey
from t01_20011231
where t01_lvl_typ = :TypNiv
and t01_lvl_nbr = :Niv))=1
group by
???;

The problem is that I am no longuer able to find the RIGHT group by statment :-/

Can someone help me ? I'm sure it is surely kind simplistic? dunno..

Ah! The purpose of the query is to sum values on all nodes children of one node.
Inthis crappy customer database, a node is identifyied uniquely with couple
(t01_lvl_typ,t01_lvl_nbr), ((couple t01_upr_lvl_typ,t01_upr_lvl_nbr identifies
uniquely the Father of the node)) because there can be nodes at different level
(lvl_typ) with the same identifyier (lvl_nbr). I dont want to user concat || to
create a pseudo-unique-identifyer, because I think there may be perfs problems
...

Thanks. Best regards & wishes.

--
Jean-Paul ARGUDO IDEALX S.A.S
Consultant bases de données 15-17, av. de Ségur
http://IDEALX.com/ F-75007 PARIS

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message mlw 2002-02-13 12:11:28 Re: benchmarking postgres
Previous Message bpalmer 2002-02-13 11:56:14 Re: benchmarking postgres