我有两个表,交易和房源。从第一个平均值填充第二个表
交易列出我每天发生的所有交易。我在交易列中列出了每个交易项目的价格。每天发生几笔交易。我希望获取每日所有交易的中位数或平均值,并在列表中填入新列。
所以我的最终结果将在名为daily_price_average 上市列,这需要个人交易信息从交易的平均价格。
有关如何做到这一点的任何想法?
或者我如何使用视图来做到这一点?
我有两个表,交易和房源。从第一个平均值填充第二个表
交易列出我每天发生的所有交易。我在交易列中列出了每个交易项目的价格。每天发生几笔交易。我希望获取每日所有交易的中位数或平均值,并在列表中填入新列。
所以我的最终结果将在名为daily_price_average 上市列,这需要个人交易信息从交易的平均价格。
有关如何做到这一点的任何想法?
或者我如何使用视图来做到这一点?
为此,您可以在一个视图:
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
。
对于平均
INSERT INTO averages (day, average)
SELECT date, AVG(price)
GROUP BY date
获得中位数为... complicated。
第1步 - 决定你是想要的平均数还是中位数。如果你想要中位数,决定你想要的类型。 –
我会去的意思。 –
不要在表中做这个,使用'VIEW'。 –