2013-09-10 125 views
0

我有两个表,交易房源从第一个平均值填充第二个表

交易列出我每天发生的所有交易。我在交易列中列出了每个交易项目的价格。每天发生几笔交易。我希望获取每日所有交易的中位数或平均值,并在列表中填入新列。

所以我的最终结果将在名为daily_price_average 上市列,这需要个人交易信息从交易的平均价格。

有关如何做到这一点的任何想法?

或者我如何使用视图来做到这一点?

+0

第1步 - 决定你是想要的平均数还是中位数。如果你想要中位数,决定你想要的类型。 –

+0

我会去的意思。 –

+1

不要在表中做这个,使用'VIEW'。 –

回答

1

为此,您可以在一个视图:

create v_listings as 
    select l.*, 
      (select avg(price) 
      from transactions t 
      where date(t.transactiondate) = l.date 
      ) as daily_price_average 
    from listings l; 

执行更新,你首先可以肯定的daily_price_average是在列表的列:

update listings join 
     (select date(t.transactiondate) as tdate, avg(price) as avgprice 
     from transactions 
     group by date(t.transactiondate) 
     ) td 
     on listings.date = td.tdate 
    set daily_price_average = td.avgprice; 

这两个假设listings平均有一列叫date

相关问题