关于oracle数据相减
表结构如下:NAMEVALUETIME张三1502017-09-1112:01:01李四2802017-09-1112:01:01老王1772017-09-1112:01...
表结构如下:
NAME VALUE TIME
张三 150 2017-09-11 12:01:01
李四 280 2017-09-11 12:01:01
老王 177 2017-09-11 12:01:01
张三 170 2017-09-11 13:01:01
李四 320 2017-09-11 13:01:01
老王 277 2017-09-11 13:01:01
类似这个样子。简单码了一些,数据很多都是五秒一存,计算他们整点相减的value值。求老哥告知select语句怎么写?跪谢! 展开
NAME VALUE TIME
张三 150 2017-09-11 12:01:01
李四 280 2017-09-11 12:01:01
老王 177 2017-09-11 12:01:01
张三 170 2017-09-11 13:01:01
李四 320 2017-09-11 13:01:01
老王 277 2017-09-11 13:01:01
类似这个样子。简单码了一些,数据很多都是五秒一存,计算他们整点相减的value值。求老哥告知select语句怎么写?跪谢! 展开
1个回答
展开全部
没懂你的整点是什么意思,先写一下
创建表插入数据:
create table test
(name varchar2(10),
value int,
time date);
insert into test values ('张三',150,to_date('2017-09-11 12:01:01','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('李四',280,to_date('2017-09-11 12:01:01','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('老王',177,to_date('2017-09-11 12:01:01','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('张三',170,to_date('2017-09-11 13:01:01','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('李四',320,to_date('2017-09-11 13:01:01','yyyy-mm-dd hh24:mi:ss'));
insert into test values ('老王',277,to_date('2017-09-11 13:01:01','yyyy-mm-dd hh24:mi:ss'));
commit;
执行:
with t as
(select name,value,row_number() over (partition by name order by time) rn from test)
select t1.name,t1.value,t2.value,t2.value-t1.value from t t1,t t2 where t1.rn(+)=t2.rn-1 and t1.name=t2.name
结果:
注意:如果答案被推荐没法追答,请私信联系。
追问
谢谢老哥,我意思是张三的下一个整点减去去上一个整点,返回出他的value,十三点减去十二点的值,小时级别的value变化值(同李四老王也要做相同操作)。求解答,辛苦老哥
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |