我有两张表,交易和商品。
交易列出我每天发生的所有交易。我在交易中有一列列出了每个交易项目的价格。每天都有几笔交易。我想获取每天所有交易的中位数或平均值,并使用此信息填充 listing 中的新列。
所以我的最终结果将在 listing 中有一个名为daily_price_average的列,它从交易中获取单个交易信息的平均价格。
关于如何做到这一点的任何想法?
或者我怎么能用视图做到这一点?
答案 0 :(得分: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
的列用于平均值。
答案 1 :(得分:0)
平均
INSERT INTO averages (day, average)
SELECT date, AVG(price)
GROUP BY date
获得中位数是...... complicated。