作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SQL 问题 (MySQL)。我如何从下表创建一个新表(表名称:“well_master_prod_inj”)。
我需要按井名和日期聚合数据。我希望每个井名只有一行数据以及显示以下数据的列:
一列显示给出的第一个 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
可以看到,由于没有6个月的产量数据,“A0002”井的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)
最佳答案
CREATE TABLE IF NOT EXISTS well_master_prod_inj_rank AS (
SELECT a.WellName, a.`Date`, a.OilRate, count(b.`Date`)+1 as Rank
FROM well_master_prod_inj a
LEFT JOIN well_master_prod_inj b on a.WellName = b.WellName and a.`Date` > b.`Date`
group BY a.WellName, a.`Date`, a.OilRate
order by a.WellName, a.`Date`
) ;
INSERT INTO sdx.prod_inj_agg
select r2.WellName, r1.Date as StartDate, r1.OilRate as StartOilRate, r2.`6M_CumOilRate`
from (
select WellName, round(sum(OilRate),2) as `6M_CumOilRate`
from well_master_prod_inj_rank
where rank <=6
group by WellName
) r2 join (
select * from well_master_prod_inj_rank where rank = 1
) r1 on r2.WellName = r1.WellName;
关于MySQL 前 6 个月累计总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45984676/
我对以下需要使用 SQL 查询而不是 plsql 来解决的问题感到困惑。这个想法是建立一个累积列来计算之前的所有月份。输入表看起来像 Month 1 2 3 .. 24 我需要建立下表:
我正在寻找一个整洁的解决方案,最好使用 tidyverse 这个问题符合this answer ,但它确实有一个额外的扭曲。我的数据有一个整体分组变量“grp”。在每个这样的组中,我想根据“试验”定义
我正在尝试在 Spotfire 中创建一个运行余额列,该列应该如下图所示。本质上,我想逐行计算“金额”列的累积总计,并且我希望它随着日期的变化从 0 开始。 我尝试过几个 OVER 函数:Sum([A
我是一名优秀的程序员,十分优秀!