Igor, 
 
 You were indeed correct the SQL only version when the stack has say 8000 rows 
was terrible. It took 20+ seconds in my application.
 
 I re-wrote using a programatic approach, the resulting timing was astounding: 
.1 second.
 
 I suppose this is one of those odd cases where sql iteration in a loop is 
better than a singleton sql statement.
 
 Thanks again,
 Ken
 

Ken <[EMAIL PROTECTED]> wrote: Yes that is much better.
 
 Thanks again!
 Ken
 

Igor Tandetnik  wrote: Ken  wrote:
> The 22 is kind of like a time stamp..  (or you could just as easily
> add another column indicative of a timestamp.
>
> insert into stack values (1, 1234);
> insert into stack values (2, 1234);
> insert into stack values (6, 1234);
> insert into stack values (9, 1234);
> insert into stackpop values (12, 1234) ;
> insert into stackpop values (14, 1234) ;
> insert into stackpop values (18, 1234) ;
> insert into stack values (22, 1234);
>
> so  that 12 should pop 9, 14 pops 6 and 18 pops 2  leaving the stack
> with 1 and 22.

Ah, I didn't realize the ids are supposed to act like timestamps. In 
this case, you would need something like this:

select p.id, max(s.id) from stack s, stackpop p
where s.value = p.value and s.id < p.id and
    (select count(*) from stack s2 where s2.id between s.id and p.id) =
    (select count(*) from stackpop p2 where p2.id between s.id and p.id)
group by p.id;

Igor Tandetnik 


-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------



Reply via email to