请教一个统计语句~

y63964632 2009-05-19 02:43:44
井号 日期 产液 产油 产水
采油井1 2008-1-21 2.07 1.41 0.66
采油井1 2008-1-22 0.55 0.28 0.27
采油井1 2008-1-23 0.16 0.15 0.01
采油井1 2008-1-25 0.77 0.39 0.38
采油井1 2008-2-20 3.52 1.55 1.97
采油井1 2008-2-21 4.77 3.53 1.24
采油井1 2008-2-23 2.76 2.24 0.52
采油井1 2008-2-24 1.54 0.31 1.23
采油井1 2008-3-9 4.31 1.51 2.80
采油井1 2008-3-10 3.85 3.43 0.42
采油井1 2008-3-11 0.08 0.05 0.03
采油井1 2008-3-12 3.92 1.14 2.78


上面表的数据得到下面表数据的语句

生产时间(月) 产油量(月) 累积产油量 综合函水率 累积产水量 累积产液体量
1 2.23 2.23 0.371830986 1.32 3.55
2 7.63 9.86 0.389095415 6.28 16.14
3 6.13 15.99 0.434982332 12.31 28.3

如果输入的时间条件是 2008-2

则查到数据是:
生产时间(月) 产油量(月) 累积产油量 综合函水率 累积产水量 累积产液体量
2 7.63 9.86 0.389095415 6.28 16.14
3 6.13 15.99 0.434982332 12.31 28.3


一个累积统计+group by的查询 不知道这么说清楚不~
...全文
124 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
feifei19850830 2009-05-19
  • 打赏
  • 举报
回复


select rownum rn,t.*
from (select
sum(d.coil),
sum(sum(d.coil))over(order by substr(to_char(d.cdate,'yyyymmdd'),1,6),d.jh) acc_coil,
sum(d.cwater),
sum(sum(d.cwater))over(order by substr(to_char(d.cdate,'yyyymmdd'),1,6),d.jh) acc_cwather,
-- sum(sum(d.cye))over(partition by substr(to_char(d.cdate,'yyyymmdd'),1,6)) acc_cye
sum(sum(d.cye))over(order by substr(to_char(d.cdate,'yyyymmdd'),1,6),d.jh) acc_cye
from t_01 d
group by substr(to_char(d.cdate,'yyyymmdd'),1,6),d.jh ) t
y63964632 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 zxf_feng 的回复:]
综合函水率
不知道你是怎么算的,自己改一下SQL吧
[/Quote]

其中我有个单独统计 月数据的 产油量 如何group by 呢 谢谢~
y63964632 2009-05-19
  • 打赏
  • 举报
回复
恩 等下结贴~
阿三 2009-05-19
  • 打赏
  • 举报
回复
综合函水率
不知道你是怎么算的,自己改一下SQL吧
阿三 2009-05-19
  • 打赏
  • 举报
回复
create table t_01(jh varchar2(20),cdate date,cye number(8,2),coil number(8,2),cwater number(8,2));
insert into t_01 values('采油井1', to_date('2008-1-21','yyyy-mm-dd'), 2.07, 1.41, 0.66);
insert into t_01 values('采油井1', to_date('2008-1-22','yyyy-mm-dd'), 0.55, 0.28, 0.27);
insert into t_01 values('采油井1', to_date('2008-1-23','yyyy-mm-dd'), 0.16, 0.15, 0.01);
insert into t_01 values('采油井1', to_date('2008-1-25','yyyy-mm-dd'), 0.77, 0.39, 0.38);
insert into t_01 values('采油井1', to_date('2008-2-20','yyyy-mm-dd'), 3.52, 1.55, 1.97);
insert into t_01 values('采油井1', to_date('2008-2-21','yyyy-mm-dd'), 4.77, 3.53, 1.24);
insert into t_01 values('采油井1', to_date('2008-2-23','yyyy-mm-dd'), 2.76, 2.24, 0.52);
insert into t_01 values('采油井1', to_date('2008-2-24','yyyy-mm-dd'), 1.54, 0.31, 1.23);
insert into t_01 values('采油井1', to_date('2008-3-9','yyyy-mm-dd'), 4.31, 1.51, 2.80);
insert into t_01 values('采油井1', to_date('2008-3-10','yyyy-mm-dd'), 3.85, 3.43, 0.42);
insert into t_01 values('采油井1', to_date('2008-3-11','yyyy-mm-dd'), 0.08, 0.05, 0.03);
insert into t_01 values('采油井1', to_date('2008-3-12','yyyy-mm-dd'), 3.92, 1.14, 2.78);


select rownum rid,a.cdate 生产日期,
sum(coil) over(order by a.cdate,a.coil) 累计产油量,
sum(cwater) over(order by a.cdate,a.cwater) 累计产水量,
sum(cye) over(order by a.cdate,a.cwater) 累计产液体量
from (select to_char(cdate,'yyyy-mm') cdate,sum(cye) cye,sum(coil) coil,sum(cwater) cwater
from t_01
group by to_char(cdate,'yyyy-mm')
order by cdate) a
order by rid

y63964632 2009-05-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 mantisXF 的回复:]
SQL code1:综合函水率 怎么算出来的?
2:为什么当“输入的时间条件是 2008-2”,结果出来的是2,3月份的数据? 过滤条件是 日期>= '2008-02'?
3:如果有采油井2,采油井3怎么办?

引用 3 楼 y63964632 的回复:
生产时间 自然月
产油量=本月产油的总和
累积产油量= 本井开始产油时间 到 此自然月 的总产油量

累积产水 和累计产液 类似累积产油
[/Quote]

采油井 属于 井组 我最终的条件是按照 井号 in (井号集合) 做统计~
mantisXF 2009-05-19
  • 打赏
  • 举报
回复
1:综合函水率 怎么算出来的?
2:为什么当“输入的时间条件是 2008-2”,结果出来的是2,3月份的数据? 过滤条件是 日期>= '2008-02'?
3:如果有采油井2,采油井3怎么办?
[Quote=引用 3 楼 y63964632 的回复:]
生产时间 自然月
产油量=本月产油的总和
累积产油量= 本井开始产油时间 到 此自然月 的总产油量

累积产水 和累计产液 类似累积产油
[/Quote]
superhsj 2009-05-19
  • 打赏
  • 举报
回复
用sum()求总和,用sum()over()求累计
newlysl 2009-05-19
  • 打赏
  • 举报
回复
用月直接参与查询,得到的结果只是一行,然后用一个ln直接与这行相连接,这样做可以不?
wang_yuan_xiao 2009-05-19
  • 打赏
  • 举报
回复
应该使用if选择日期,用group by 计算各月份。然后再sum 求符合条件的各月份累加值
y63964632 2009-05-19
  • 打赏
  • 举报
回复
生产时间 自然月
产油量=本月产油的总和
累积产油量= 本井开始产油时间 到 此自然月 的总产油量

累积产水 和累计产液 类似累积产油
mantisXF 2009-05-19
  • 打赏
  • 举报
回复
最好说清楚字段值“生产时间(月)  产油量(月)  累积产油量 综合函水率      累积产水量  累积产液体量”是怎么算出来的
[Quote=引用楼主 y63964632 的帖子:]
井号 日期 产液 产油 产水
采油井1 2008-1-21 2.07 1.41 0.66
采油井1 2008-1-22 0.55 0.28 0.27
采油井1 2008-1-23 0.16 0.15 0.01
采油井1 2008-1-25 0.77 0.39 0.38
采油井1 2008-2-20 3.52 1.55 1.97
采油井1 2008-2-21 4.77…
[/Quote]
y63964632 2009-05-19
  • 打赏
  • 举报
回复
按月统计~

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧