【发布时间】:2017-08-31 15:05:25
【问题描述】:
我有一个 SQL 问题(MySQL)。如何从下表创建一个新表(表名:“well_master_prod_inj”)。
我需要按 Wellname 和日期汇总数据。我希望每个井名只有一行数据,并且列显示以下数据:
一列显示给定的第一个 OilRate 日期。
一列显示给定的第一个 OilRate。
一栏显示前 6 个月的累计油费总和。
当前数据表:
well_master_prod_inj:
WellName Date OilRate FieldName
A0001 12/1/2001 7000.6 Test
A0001 1/1/2002 2237.6 Test
A0001 2/1/2002 1518.61 Test
A0001 3/1/2002 2518.61 Test
A0001 4/1/2002 1040.98 Test
A0001 5/1/2002 2030.98 Test
A0001 6/1/2002 1090.98 Test
A0001 7/1/2002 2040.98 Test
A0002 12/1/2002 5000.97 Test
A0002 1/1/2003 2103.97 Test
A0002 2/1/2003 1275.94 Test
A0002 3/1/2003 1875.94 Test
A0002 4/1/2003 1232.34 Test
充满希望的新表:
prod_inj_agg:
WellName StartDate StartOilRate 6M_CumOilRate
A0001 12/1/2001 7000.6 16347.38
A0002 12/1/2002 5000.97
如您所见,“A0002”井的6个月累计产油率有一个空白,因为没有6个月的生产数据。如果没有足够的生产数据,我想留空。
有人可以帮我解决这个 mySQL 问题吗?
这是我的 Insert into SQL 语句。 (很抱歉一开始没有添加它)这目前只是从原始表中添加列,我还没有尝试任何聚合。
INSERT INTO sdx.prod_inj_agg
(SELECT
WellName,
`Date` as StartDate,
OilRate as StartOilRate,
OilRate as '6M_CumOilRate'
FROM
sdx.well_master_prod_inj)
【问题讨论】:
-
请为我们提供表ProductionData的CREATE表语句和INSERT语句
-
很抱歉。我添加了一个插入语句。它目前只是从原始表中插入列。我还没有尝试聚合。
-
所以,如果 A0001 将有另外 8/1/2002、9/1/2002、10/1/2002 和 11/1/2002 记录,那么在结果可以总结出另外 6 个月的 OilRate?
-
不,只是前 6 个月的石油产量。
标签: mysql sql aggregate cumulative-sum