SQL

2016-03-22 26 views
0

'daki bir tablonun periyotları üzerindeki veri ortalamaları nasıl olur? Verileri belirli bir süre ortalama ortalamaya çalışıyorum ve ardından bu sonuç arasında bir tarih alın.SQL

sahip veriler gibi:

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 

Bir sorguda gibi bir yapı elde etmek istiyorum:

value |  datetime 
-------+------------------------ 
    18.6 | 2015-08-16 01:03:00+02 
    18.8 | 2015-08-16 01:08:00+02 
ilk 5 başlangıç ​​değerleri karşılık gelen değer ortalama

ve orta ile tarihi (5 intial datetimes. Aralığını temsil eden 5

SQL'de ortalama, ortalama ve ortalama tarih biçimiyle beni parçanın üzerine koyan bazı yayınlar gördüm, ancak tam olarak ne yapacağımı hala öğrenemiyorum. Ben PostgreSQL 9.4

+1

Bu tarihler ve değerlerle nasıl çıktığınızı açıklayabilir misiniz? –

+0

Elbette, aslında bu veriler istasyon ölçümlerinden otomatik olarak eklenir. – AnomalySmith

+0

Hayır, elde etmek istediğiniz sonuçlar. Neden bu iki belirli zamanı görmeyi bekliyorsunuz? –

cevap

0

şey (küresel outputed hatlarına eşittir) ortalama aralıkları uzunluğuna etki eden 100 ile, roughtly benim gereksinimleri doldurdu

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); 

gibi: İşte üzerinde daha fazla bilgidir.

0

Burada daha fazla bilgi paylaşmak gerekir ama olur altında çalışıyorum

bunu yapmak için bir yoldur. HERE

mysql> SELECT AVG(value), AVG(datetime) 
     FROM database.table 
     WHERE datetime > date1 
     AND datetime < date2;