-- Start

假设现在我们有下面的表用来存放交易记录,现在我们要做一个报表,查询一下每相邻两次交易记录的 amount 的差值,也就是第二条记录的 amount 减去第一条的 amount,第三条减去第二条。

CREATE TABLE history
(trade_id           NUMBER(10, 0),trade_date_time    TIMESTAMP,amount             NUMBER(10, 2)
);

该怎么办呢?我们有几种办法。第一种办法是查询出所有的记录,然后在 Java 里进行运算。第二种是使用函数通过游标来进行运算。那有没有一种办法一个 SQL 就搞定了呢?不能吧?怎么可能呢?试一试下面的 SQL 吧。

SELECT   trade_id,  trade_date_time,  amount - NVL(LAG(amount) OVER(PARTITION BY trade_id ORDER BY trade_date_time), 0)
FROM history;

什么?没看懂?首先学学什么是  Oracle 分析函数吧。

-- 更多参见:Oracle SQL 精萃

-- 声明:转载请注明出处

-- Last Edited on 2015-02-14

-- Created by ShangBo on 2015-02-14

-- End

Oracle 分析函数案例相关推荐

  1. Oracle分析函数——函数列表

    --------------聚合函数 SUM :该函数计算组中表达式的累积和 MIN :在一个组中的数据窗口中查找表达式的最小值 MAX :在一个组中的数据窗口中查找表达式的最大值 AVG :用于计算 ...

  2. Oracle分析函数六——数据分布函数及报表函数

    Oracle分析函数--数据分布函数及报表函数 CUME_DIST 功能描述:计算一行在组中的相对位置,CUME_DIST总是返回大于0.小于或等于1的数,该数表示该行在N行中的位置.例如,在一个3行 ...

  3. Oracle分析函数大全

    分析函数又叫开窗函数,OLAP函数等,因为有人问我用过开窗函数没,呵,什么是开窗函数,从来没听过,难道是分析函数么.哈哈,最后还真是分析函数哦!用过的东西别名也应该知道,赶上这么个事,就剽窃一眼Ora ...

  4. Oracle quartile函数,Oracle分析函数六——数据分布函数及报表函数

    Oracle 分析函数--数据分布函数及报表 函数CUME_DIST功能描述:计算一行在组中的相对位置, CUME_DIST 总是返回大于 0 .小于或等于 1 的数,该数表示该行在 N 行中的位置. ...

  5. Oracle分析函数五——统计分析函数

    Oracle 分析函数--统计分析函数 方差和标准差:     样本中各数据与样本平均数的差的平方和的平均数叫做样本方差:样本方差的算术平方根叫做样本标准差.样本方差和样本标准差都是衡量一个样本波动大 ...

  6. oracle 四分位函数,Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…

    Oracle 分析函数--函数RANK,DENSE_RANK,FIRST,LAST- RANK 功能描述:根据 ORDER BY 子句中表达式的值,从查询返回的每一行,计算它们与其它行的相对位置.组内 ...

  7. 【分析函数】Oracle分析函数之LAG和LEAD

    [分析函数]Oracle分析函数之LAG和LEAD Lag和Lead函数可以在一次查询中取出同一字段的前N行的数据和后N行的值.这种操作可以使用对相同表的表连接来实现,不过使用LAG和LEAD有更高的 ...

  8. oracle 数据分析函数,ORACLE分析函数(一)

    ORACLE分析函数(1) 分析函数式ORACLE提供的用来进行数据统计的强有力工具,与我们常用的聚合函数具有一些相似性,但又完全不同.聚合函数,首先会将数据进行分组,然后对每一组数据进行运算,如求和 ...

  9. Oracle分析函数巧妙使用

    在 Oracle中使用Sql必须弄懂分析函数 Oracle开发专题之:分析函数(OVER) 1 Oracle开发专题之:分析函数2(Rank, Dense_rank, row_number) 6 Or ...

最新文章

  1. 图解Skip List——本质是空间换时间的数据结构,在lucene的倒排列表,bigtable,hbase,cassandra的memtable,redis中sorted set中均用到...
  2. #102030:在30天内运行20 10K,庆祝Java 20年
  3. RegExp:正则表达式对象
  4. java steam 去重_Java中对List去重 Stream去重的解决方法
  5. 06-在IDEA中实战Git
  6. Linux 0.11内核分析03:系统调用
  7. LeetCode(500)——键盘行(JavaScript)
  8. HP/Aruba 2620系列交换机DHCP中继配置方法
  9. 快速删除大文件 多级目录 同步并删除 rsync
  10. Leetcode之整数转罗马数字
  11. Chrome 87 发布,获多年来最大性能提升
  12. OpenDDS应用开发步骤
  13. 黑苹果macOS Catalina 10.15.4 安装过程详细记录
  14. 架构师之路--康奈尔笔记法
  15. 大话伊辛模型之一:源起
  16. 从turtlesim到贪吃蛇……(补充)
  17. 微信平台自动获取Token
  18. python:select interpreter resulted in an error python.setINterpreter not found
  19. Android系统状态栏的信号图标显示流程简介
  20. 线性代数Python计算:向量的模及向量间的夹角

热门文章

  1. CDMA1xRTT 走向成功的捷径(转)
  2. Python之解析html内容
  3. 社会工程学——无法忽略的另类安全
  4. 列表推导式 python_Python进阶 列表推导式详解总结
  5. idea打包非maven项目打包war包
  6. 量化专家丁鹏深度分析光大乌龙指
  7. 第1关:length()方法与compareTo()方法的使用 - 花名册
  8. JavaWeb小项目(二)- 完成品牌数据的增删改查(JSP/MVC/三层架构综合应用)
  9. xmind安装后打不开
  10. python数组重复数据去重_JS实现数组去重(重复的元素只保留一个)