创建一个新的postgres表,但有平均值

时间:2014-04-26 13:00:18

标签: postgresql

我是一个SQL新手。

我有一个具有日期时间和值的postgres表。与子分钟条目。我想创建一个新表,它取每分钟的平均值并保存,而不是有子分钟条目。所以像这样:

1-12-07 12:29:56:00   2
1-12-07 12:29:56:16   3
1-12-07 12:29:56:34   3
1-12-07 12:29:56:58   4
1-12-07 12:30:00:00   7

1-12-07 12:29:00   3
1-12-07 12:30:00   #

有没有办法在postgres中做到这一点?

我能想到的唯一解决方案是使用python脚本来完成这个技巧。但是,由于我拥有大量数据,这将永远需要。

2 个答案:

答案 0 :(得分:0)

所以这将是可怕的,低效的和不完整的答案,建议写一个脚本(只是我的.02)

应该是这样的,因为问题中没有提供sqlFiddle:

select average(my_count)
   from
   (
      select my_date, my_time,my_count 
      from my_table
      group by my_date, extract(minute from my_time)
   )

答案 1 :(得分:0)

为了做到这一点,您必须按截断时间分组结果:

insert into "NewTable"
select minute, avg(value) from (select date_trunc('minutes', date) as minute, value from "Time") as Average group by minute;