0

可変日付の移動平均を計算しようとしています。

私のデータベースは構造化されています:

id int    
date date
price decimal

たとえば、過去 5 日間で 19 日前にさかのぼる平均価格が 40 日前にさかのぼる平均価格よりも高くなるかどうかを調べたいと思います。これらの各期間は可変です。

私が行き詰まっているのは、サブクエリ用に特定の数の行を選択することです。

Select * from table
order by date
LIMIT 0 , 19

1 日に 1 つの入力しかないことを知っているので、上記をサブクエリとして使用できますか? その後、問題は些細なことのように思えます....

4

2 に答える 2

0

1 日に 1 つの入力しかない場合、ID は必要ありません。日付をプライマリ ID にできますか? 何か不足していますか?次に、選択合計を使用します

SELECT SUM(price) AS totalPrice FROM table Order by date desc Limit (most recent date),(furthest back date) 

totalPrice/(total days) 

あなたの質問が理解できないかもしれません

于 2013-04-27T00:23:37.437 に答える
0

はい、次のようなサブクエリとして使用できます。

SELECT 
    AVG(price) 
FROM 
    (SELECT * FROM t ORDER BY date DESC LIMIT 10) AS t1;

これにより、最新の 10 行の平均価格が計算されます。

フィドルを参照してください

于 2013-04-27T00:31:41.950 に答える