关于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语句怎么写?跪谢!
展开
 我来答
badkano
2017-11-18 · 知道合伙人体育行家
badkano
知道合伙人体育行家
采纳数:144777 获赞数:885359
团长

向TA提问 私信TA
展开全部

没懂你的整点是什么意思,先写一下

创建表插入数据:

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变化值(同李四老王也要做相同操作)。求解答,辛苦老哥
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式