[SQL] Add calculated fields from one table to other table

2006-10-25 Thread roopa perumalraja
Hi     I have two tables. Tick table has fields like ticker, time, price & volume and Timeseries table has fields like ticker, time, avg_price, avg_volume.     The time field in Timeseries table is different from time in tick table, its the timeseries for every minute. Now I want to calculate the average price & volume from tick table for each ticker and for every minute and add those fields to timeseries table. Can anyone please help me out with the sql query.     Note: The ticker in the tick table also has duplicate values, so i am not able to create relation between two tables.     Thanks in advance  Roopa 
	
		Get your own web address for just $1.99/1st yr. We'll help. Yahoo! Small Business.


Re: [SQL] Add calculated fields from one table to other table

2006-10-25 Thread Aaron Bono
On 10/25/06, roopa perumalraja <[EMAIL PROTECTED]> wrote:
Hi     I have two tables. Tick table has fields like ticker, time, price & volume and Timeseries table has fields like ticker, time, avg_price, avg_volume.     The time field in Timeseries table is different from time in tick table, its the timeseries for every minute. Now I want to calculate the average price & volume from tick table for each ticker and for every minute and add those fields to timeseries table. Can anyone please help me out with the sql query.
     Note: The ticker in the tick table also has duplicate values, so i am not able to create relation between two tables.Will this help:select    ticker,
    date_trunc('minute', time),    ave(price),    ave(volume)from tickgroup by    ticker,    date_trunc('minute', time)You say you want to "add" these values to the Timeseries table?  You mean insert them?  If so do this:
insert into timeseries (ticker, time, avg_price, avg_volume)select
    ticker,
    date_trunc('minute', time),
    ave(price),
    ave(volume)
from tick
group by
    ticker,
    date_trunc('minute', time)Of course if you do this repeatedly, you will start gathering duplicates in the timeseries so you may want to do one insert and one update:insert into timeseries (
ticker, time, avg_price, avg_volume
)
select

    tick.ticker,

    date_trunc('minute', tick.time),

    ave(tick.price),

    ave(tick.volume)

from tickleft outer join timeseries on (    -- Not sure your join since you said time is not the same between ticke and timeseries    date_trunc('minute', tick.time) = timeseries.tick    and tick.ticker = 
timeseries.ticker)

group by

    ticker,

    date_trunc('minute', time)having timeseries.ticker is null... I will leave the update as an exercise ;)==   Aaron Bono
   Aranya Software Technologies, Inc.   http://www.aranya.com   http://codeelixir.com==