Re: triple self-join crawling - Mailing list pgsql-sql

From T E Schmitz
Subject Re: triple self-join crawling
Date
Msg-id 45FE4848.5040407@numerixtechnology.de
Whole thread Raw
In response to triple self-join crawling  (T E Schmitz <mailreg@numerixtechnology.de>)
Responses Re: triple self-join crawling  (T E Schmitz <mailreg@numerixtechnology.de>)
List pgsql-sql
T E Schmitz wrote:
> The following self join of a table containing 5800 records is crawling:
> 
> SELECT
>     history.stock, history.day, history.high, history.low,
>     MAX(past_week.high) AS week_high,
>     MAX(past_month.high) AS month_high
> FROM history
> INNER JOIN history AS past_month ON (past_month.stock = history.stock 
> AND past_month.day < history.day AND past_month.day >= (history.day - 30))
> INNER JOIN history AS past_week  ON (past_week.stock   = 
> past_month.stock AND past_week.day < history.day AND past_week.day >= 
> (history.day - 7))
> GROUP BY  history.stock, history.day, history.high, history.low
> ORDER BY history.stock, history.day DESC

Things improved hugely when I changed the JOIN clauses:

LEFT OUTER JOIN history AS past_month ON (past_month.stock = 
history.stock        AND past_month.day >= (history.day - 30) AND 
past_month.day < history.day)
LEFT OUTER JOIN history AS past_week  ON (past_week.stock   = 
past_month.stock AND past_week.day  =past_month.day AND past_week.day >= (history.day - 7))


-- 


Regards,

Tarlika Elisabeth Schmitz


pgsql-sql by date:

Previous
From: Andrew Sullivan
Date:
Subject: Re: triple self-join crawling
Next
From: "Ezequias R. da Rocha"
Date:
Subject: Encode