0

私は 2 つのテーブル、トランザクションリストを持っています。

トランザクションには、毎日発生するすべてのトランザクションがリストされます。取引された各アイテムの価格を一覧表示する取引列があります。毎日複数のトランザクションが発生します。毎日のすべてのトランザクションの中央値または平均値を取得し、この情報をリストの新しい列に入力したいと思います。

したがって、私の最終結果には、取引から個々の取引情報の平均価格を取得する、daily_price_average というリストの列が含まます

これを行う方法について何か考えはありますか?

または、ビューを使用してこれを行うにはどうすればよいですか?

4

2 に答える 2

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

于 2013-09-10T19:55:32.130 に答える
0

使用するINSERT... SELECT

平均的に

INSERT INTO averages (day, average)
  SELECT date, AVG(price)
  GROUP BY date

中央値を取得するのは...複雑です。

于 2013-09-10T19:47:33.807 に答える