postgres将3列平均为一列

时间:2014-12-15 02:21:56

标签: python postgresql

我的桌子有姓名,日期,时间,价格,大小,例如:

symb1 4-13-14 8:28:32:00  25.00 400
symb1 4-13-14 8:29:03:00  25.01 600
symb1 4-13-14 8:29:17:00  24.93 500
symb1 4-13-14 8:29:17:00  24.96 1400
symb1 4-13-14 8:30:22:00  25.02 800

我想创建一个新表,按价格和订单价值平均每分钟。所以我希望有名称,日期,时间(现在以分钟为单位)和每单位平均价格。以下是:

symb1 4-13-14 8:28:00:00  25.00
symb1 4-13-14 8:29:00:00  24.966
symb1 4-13-14 8:30:00:00  25.02

有没有办法在postgres中执行此操作,还是需要编写一个脚本(在python或其他内容中),调用每个日期/时间组合手动计算它然后重新插入它?

1 个答案:

答案 0 :(得分:0)

在SQL中尝试:

SELECT
  date_trunc('minute', timestamp_column_name) AS timestamp_minute,
  avg(price) AS avg_price
FROM
  your_table
GROUP BY 1;

当然,替换" timestamp_column_name"和" your_table"每个数据库都有适当的对象名称。