[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-sql
Subject:    Re: [SQL] join table with itself?
From:       T E Schmitz <mailreg () numerixtechnology ! de>
Date:       2007-03-15 18:54:45
Message-ID: 45F99675.5050801 () numerixtechnology ! de
[Download RAW message or body]

William Leite Araújo wrote:
> On 15/03/07, *T E Schmitz* <mailreg@numerixtechnology.de 
> <mailto:mailreg@numerixtechnology.de>> wrote:
> (...)
>  
>    Try join the tables.
> 
>     SELECT  present.day, present.low, (MIN(future.day)-present.day) as
> 
>     days2fall FROM history AS present JOIN history AS future ON (
>     present.day < future.day AND
>          future.low <= present.low )
>     GROUP BY present.day,present.low
>     ORDER BY days2fall DESC

That produces the same result as my previous example but maybe the join 
is more efficient, Thank you for the suggestion.

However, I am still stuck as to how to retrieve HIGHEST. The result set 
produced by the above query only contains those tuples whose LOW is 
lower than present.LOW.

For HIGHEST, I need to look at the rows between present.day and DAYS2FALL:

something like

SELECT MAX (high) from history WHERE day >= present.day AND day < 
(present.day + days2fall)

-


Regards,

Tarlika Elisabeth Schmitz

---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic