如何在SQL中对表中的周期数据求平均值

如何在SQL中对表中的周期数据求平均值,sql,postgresql,average,Sql,Postgresql,Average,我试图对特定时间段的数据取平均值,然后,从这些结果中取一个日期的平均值 具有如下数据: 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

我试图对特定时间段的数据取平均值,然后,从这些结果中取一个日期的平均值

具有如下数据:

 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
我想在一个查询中获得如下信息:

 value |        datetime
-------+------------------------
  18.6 | 2015-08-16 01:03:00+02
  18.8 | 2015-08-16 01:08:00+02
其中,前5个初始值对应的值取平均值,日期时间取5个初始日期时间的中间值(或平均值)。5表示间隔n

我看到一些帖子将我带上了SQL中的avg、group by和AV date格式的轨道,但我仍然无法找到确切的方法


我在PostgreSQL 9.4下工作,您需要共享更多信息,但这里有一种方法。以下是关于它的更多信息:

mysql>选择平均值(value),平均值(datetime)
从database.table
其中datetime>date1
datetime
类似

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(全局等于输出线)。

请详细说明您是如何得出这些日期和值的?当然,实际上这些数据是从测站测量值自动插入的。不,是您希望得到的结果。为什么你希望看到这两个特定的时间?好吧,这还不够解释,坏的。从这些数据中,我希望获得平均数据和每个n个结果的日期。例如,列值和日期时间对每个输出行都有数据和日期的平均值(每5个首字母记录一次)。那么平均时间不应该是02和07吗?
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);