我想请教一下,在oracle中有没有函数可以计算数据之差的。如:有一个表table ,ID=1时,D=0, ID=2时,D=C2/C1-1, ID=3时, D=C3/C2-1, ...ID A B C D
1 90 80 70 0
2 80 24 40 -0.75
3 123 23 50 0.2本来数据库表只有ID,A,B,Cl四列,但我现在需要D列,用select语句得到计算D的值。
请问该如何实现?
Select ID, A,B,C,Case When ID=1 Then '0' Else ??? END D From table
Else后面的该如何实现?
谢谢
1 90 80 70 0
2 80 24 40 -0.75
3 123 23 50 0.2本来数据库表只有ID,A,B,Cl四列,但我现在需要D列,用select语句得到计算D的值。
请问该如何实现?
Select ID, A,B,C,Case When ID=1 Then '0' Else ??? END D From table
Else后面的该如何实现?
谢谢
解决方案 »
- 为什么NOARCHIVELOG模式做recover后,为什么会提示数据文件块损坏呢?
- plsql9以上版本和8有啥区别?
- 实现一个字段,只能由字母打头(大小写均可),后面是7位阿拉伯数字,且最后一位不能为0
- ORACLE行专列统计问题
- oracle下作业怎么来建?
- 使用SQL plus至少要打开哪些服务?
- ◇◆Oracle中高手看过来~~~~~`一个最最基本的问题!!
- 俺是新手,请大家推荐些oracle经典书籍吧。谢谢大家
- oracle8i 客户端在98上进行 net 配置时提示 “没有监听器” 为什么?
- 如何启动Management Server
- 麻烦帮我写一条SQL语句
- 关于Oracle的报表工具biee
with tmp as
(
select 1 id, 90 a, 80 b, 70 c from dual
union all
select 2 id, 80 a, 24 b, 40 c from dual
union all
select 3 id, 123 a, 23 b, 50 c from dual
)
select id, a, b, c, nvl(c / lag(c) over (order by id) - 1, 0)
from tmp ID A B C RESULT
---------- ---------- ---------- ---------- ----------
1 90 80 70 0
2 80 24 40 -0.4285714
3 123 23 50 .25