欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

求一条 sql解决思路

更新时间: 2014-01-05 02:11:27 责任编辑: Author_N1

 

求一条 sql
两张表
第一张 1m表
datetime                price     db    
2012-6-11 12:00:01      55       158
2012-6-11 12:00:35      56       199
2012-6-11 12:01:22      58       124
2012-6-11 12:01:29      58       195
2012-6-11 12:01:55      59       250

第二张 2m表
open   high     low     close     bal    db2


要求从第一张表的数据中 生成第二张表
第一张表是实时表,第二张表是每3分钟统计表

open 是指每二分钟开始的第一个价格
high 二分钟里最高价
low  二分钟里最低价
close 二分钟结束时价 
bal  二分钟里平均价
db2 第一张表db的二分钟结束时最后一个数据

第一张表时有一个小时的报价数据,第二张表每一条都是第一张表的3分钟统计

求生成第二张表的sql
--参考方法--
按楼主提供的结构及数据进行了测试,统计间隔为3分钟。
select distinct t2.dt,
       max(t1.price) over(partition by t2.dt) high,
       min(t1.price) over(partition by t2.dt) low,
       trunc(avg(t1.price) over(partition by t2.dt), 2) bal,
       min(t1.price) keep(dense_rank first order by t1.datatime) over(partition by t2.dt) open,
       max(t1.price) keep(dense_rank last order by t1.datatime) over(partition by t2.dt) close,
       max(t1.db) keep(dense_rank last order by t1.datatime) over(partition by t2.dt) db2
  from t1 ,(
  select to_date('2012-06-11 13:00:00', 'yyyy-mm-dd hh24:mi:ss') -
       (level - 1) * 3 / 1440 dt
  from dual
connect by level <= 21
  ) t2 where t1.datatime>=t2.dt-3/1440 and t1.datatime<t2.dt

上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:11:27
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/6792/
本文WWW.DOC100.NET DOC100.NET版权所有。