2016-03-22 3 views
0

特定の期間のデータを平均化してから、これらの結果の平均をとってみようとしています。SQLのテーブルから期間のデータを平均化する方法

有するデータのように:

value |  datetime 
-------+------------------------ 
    15 | 2015-08-16 01:00:40+02 
    22 | 2015-08-16 01:01:40+02 
    16 | 2015-08-16 01:02:40+02 
    19 | 2015-08-16 01:03:40+02 
    21 | 2015-08-16 01:04:40+02 
    18 | 2015-08-16 01:05:40+02 
    29 | 2015-08-16 01:06:40+02 
    16 | 2015-08-16 01:07:40+02 
    16 | 2015-08-16 01:08:40+02 
    15 | 2015-08-16 01:09:40+02 

私は1つのクエリでのようなものを取得したい:

value |  datetime 
-------+------------------------ 
    18.6 | 2015-08-16 01:03:00+02 
    18.8 | 2015-08-16 01:08:00+02 
第5の初期値に対応する値を平均

と中央との日時(または平均)を計算します。 5は間隔nを表す。

私はavg、group by、平均日付形式のトラックを私の上に置いた記事を見ましたが、私はまだ何をすべきかを見つけることができません。

私はあなたがより多くの情報を共有する必要がありますが、ここでそれを行う方法であるしまうのPostgreSQL 9.4の下で

+1

これらの日付と値がどのように思い付かれたかを詳しく教えてください。 –

+0

確かに、実際にはこれらのデータは駅の対策から自動的に挿入されます。 – AnomalySmith

+0

いいえ、あなたが得ようとしている結果。なぜこれらの2つの特定の時間を見たいと思いますか? –

答えて

0

SELECT 
    to_timestamp(round(AVG(EXTRACT(epoch from datetime)))) as middleDate, 
    avg(value) AS avgValue 
FROM 
    myTable 
GROUP BY 
    (id)/((SELECT Count(*) FROM myTable)/100); 

のようなものは、100(グローバルoutputedラインに等しい)、平均間隔の長さに作用すると、roughtly私の要件を満たしました。

0

を働いています。ここではそれについての詳細は次のとおりです。HERE

mysql> SELECT AVG(value), AVG(datetime) 
     FROM database.table 
     WHERE datetime > date1 
     AND datetime < date2; 
関連する問題