Postgres加权平均给定两个时间间隔列和单独的表

时间:2018-01-30 22:27:17

标签: postgresql aggregate weighted

我想计算由多个子订单组成的父订单的加权平均值。第一个表定义了父订单,其中定义了产品ID,父订单,start_time和结束时间。第二个表是我需要聚合数据的地方。

群组定义表:

id | order_Parent |     start_time      |   end_time
1  |      1       | 2018-01-26 15:53:00 |   2018-01-26 15:54:00
2  |      2       | 2018-01-26 15:51:00 |   2018-01-26 16:01:00
2  |      3       | 2018-01-26 15:27:00 |   2018-01-26 15:35:00

计算加权平均值的数据表:

id |  order_child  |    time_stamp        |   weight | target_value
1  |       1       | 2018-01-26 15:53:00  |   100    |  99.99
1  |       1       | 2018-01-26 15:53:00  |   200    |  89.99
1  |       1       | 2018-01-26 15:53:30  |   50     |  114.99
2  |       2       | 2018-01-26 15:49:00  |   100    |  49.99
2  |       2       | 2018-01-26 15:55:00  |   100    |  59.99
2  |       2       | 2018-01-26 15:57:30  |   250    |  54.99
2  |       3       | 2018-01-26 15:27:30  |   100    |  54.99
2  |       3       | 2018-01-26 15:31:30  |   75     |  49.99
2  |       3       | 2018-01-26 15:34:30  |   100    |  54.99  

理想输出:

 id | order_Parent |     start_time      |   end_time            | WgtAvg
 1  |      1       | 2018-01-26 15:53:00 |   2018-01-26 15:54:00 | 96.41
 2  |      2       | 2018-01-26 15:51:00 |   2018-01-26 16:01:00 | 54.99
 2  |      3       | 2018-01-26 15:27:00 |   2018-01-26 15:35:00 | 53.62

问题似乎很明显,但我很难理解如何将第一个表用于我的组定义,以便计算每个父订单的加权平均值。

非常感谢任何想法。

0 个答案:

没有答案