`

Oracle分析函数实例

阅读更多
sum() over(...)...
1:
WITH t AS(
SELECT DATE'2010-01-03' 时间, 1 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-04' 时间, 3 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-05' 时间, 5 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-06' 时间, 7 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-07' 时间, 8 新增数量 FROM dual
)
SELECT * FROM t;

WITH t AS(
SELECT DATE'2010-01-03' 时间, 1 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-04' 时间, 3 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-05' 时间, 5 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-06' 时间, 7 新增数量 FROM dual UNION ALL
SELECT DATE'2010-01-07' 时间, 8 新增数量 FROM dual
)
SELECT t.时间,SUM(新增数量) over(ORDER BY 时间) 累计和 FROM t
WHERE t.时间 BETWEEN DATE'2010-01-03' AND DATE'2010-02-03';

2:
WITH t as(
SELECT 200405 BILL_MONTH,          '5761' AREA_CODE,       'G' NET_TYPE,              7393344.04 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5761' AREA_CODE,       'J' NET_TYPE,              5667089.85 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5762' AREA_CODE,       'G' NET_TYPE,              6315075.96 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5762' AREA_CODE,       'J' NET_TYPE,              6328716.15 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5763' AREA_CODE,       'G' NET_TYPE,              8861742.59 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5763' AREA_CODE,       'J' NET_TYPE,              7788036.32 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5764' AREA_CODE,       'G' NET_TYPE,              6028670.45 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5764' AREA_CODE,       'J' NET_TYPE,              6459121.49 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5765' AREA_CODE,       'G' NET_TYPE,             13156065.77 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200405 BILL_MONTH,          '5765' AREA_CODE,       'J' NET_TYPE,             11901671.70 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5761' AREA_CODE,       'G' NET_TYPE,              7614587.96 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5761' AREA_CODE,       'J' NET_TYPE,              5704343.05 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5762' AREA_CODE,       'G' NET_TYPE,              6556992.60 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5762' AREA_CODE,       'J' NET_TYPE,              6238068.05 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5763' AREA_CODE,       'G' NET_TYPE,              9130055.46 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5763' AREA_CODE,       'J' NET_TYPE,              7990460.25 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5764' AREA_CODE,       'G' NET_TYPE,              6387706.01 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5764' AREA_CODE,       'J' NET_TYPE,              6907481.66 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5765' AREA_CODE,       'G' NET_TYPE,             13562968.81 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200406 BILL_MONTH,          '5765' AREA_CODE,       'J' NET_TYPE,             12495492.50 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5761' AREA_CODE,       'G' NET_TYPE,              7987050.65 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5761' AREA_CODE,       'J' NET_TYPE,              5723215.28 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5762' AREA_CODE,       'G' NET_TYPE,              6833096.68 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5762' AREA_CODE,       'J' NET_TYPE,              6391201.44 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5763' AREA_CODE,       'G' NET_TYPE,              9410815.91 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5763' AREA_CODE,       'J' NET_TYPE,              8076677.41 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5764' AREA_CODE,       'G' NET_TYPE,              6456433.23 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5764' AREA_CODE,       'J' NET_TYPE,              6987660.53 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5765' AREA_CODE,       'G' NET_TYPE,             14000101.20 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200407 BILL_MONTH,          '5765' AREA_CODE,       'J' NET_TYPE,             12301780.20 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5761' AREA_CODE,       'G' NET_TYPE,              8085170.84 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5761' AREA_CODE,       'J' NET_TYPE,              6050611.37 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5762' AREA_CODE,       'G' NET_TYPE,              6854584.22 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5762' AREA_CODE,       'J' NET_TYPE,              6521884.50 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5763' AREA_CODE,       'G' NET_TYPE,              9468707.65 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5763' AREA_CODE,       'J' NET_TYPE,              8460049.43 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5764' AREA_CODE,       'G' NET_TYPE,              6587559.23 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5764' AREA_CODE,       'J' NET_TYPE,              7342135.86 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5765' AREA_CODE,       'G' NET_TYPE,             14450586.63 LOCAL_FARE FROM DUAL UNION ALL
SELECT 200408 BILL_MONTH,          '5765' AREA_CODE,       'J' NET_TYPE,             12680052.38 LOCAL_FARE FROM DUAL 
)

SELECT nvl(area_code,'合计') area_code ,SUM(local_fare) local_fare FROM t
GROUP BY rollup(nvl(area_code,'合计'));

SELECT area_code,SUM(local_fare) local_fare FROM t
GROUP BY area_code
UNION ALL
SELECT '合计' area_code,SUM(local_fare) local_fare FROM t;


WITH t AS (
SELECT 1 aa FROM dual UNION ALL
SELECT 2 aa FROM dual UNION ALL
SELECT 2 aa FROM dual UNION ALL
SELECT 2 aa FROM dual UNION ALL
SELECT 3 aa FROM dual UNION ALL
SELECT 4 aa FROM dual UNION ALL
SELECT 5 aa FROM dual UNION ALL
SELECT 6 aa FROM dual UNION ALL
SELECT 7 aa FROM dual UNION ALL
SELECT 9 aa FROM dual
)
SELECT aa,SUM(aa) over(ORDER BY aa) FROM t;

--SELECT aa,SUM(aa) over(ORDER BY aa RANGE BETWEEN 2 preceding AND 2 following) FROM t
分享到:
评论

相关推荐

    oracle分析函数(用法+实例)

    Oracle 分析函数(用法+实例) Oracle 分析函数是 Oracle 8.1.6 版本中引入的高级应用,属于 Oracle 的一大亮点。分析函数可以分为四大类:排名函数、聚合函数、行比较函数和统计函数。下面将对分析函数的原理、...

    oracle分析函数.doc

    2. **Oracle分析函数实例** - `RANK()`, `DENSE_RANK()`, `ROW_NUMBER()`:这三种函数用于为每一行分配一个唯一的序号,区别在于`RANK()`在有相同值时跳过序号,`DENSE_RANK()`不跳过,`ROW_NUMBER()`始终连续。 -...

    Oracle分析函数教程

    Oracle分析函数是数据库管理系统Oracle中的一个重要特性,自8.1.6版本开始引入,它们用于执行基于组的聚合计算,并且为每个组返回多行结果,而不仅仅是单行。这使得分析函数在数据分析和报表生成方面非常有用,能够...

    Oracle分析函数.pdf

    Oracle分析函数是Oracle数据库提供的用于数据分析的一组SQL扩展,它们能够对一组数据执行计算,并返回一组结果,这组结果通常会有一个多行的集合。与聚合函数不同,分析函数不会把多行聚合成单一结果,而是在原有...

    oracle分析函数学习

    Oracle分析函数是数据库查询中的重要工具,特别是在处理复杂的报表和数据分析任务时,它们能提供强大的功能,帮助开发者高效地处理大量数据。分析函数允许你在数据集上执行计算,同时考虑到行之间的关系,而不仅仅是...

    【转】Oracle分析函数简述

    Oracle分析函数是数据库管理系统...通过阅读“oracle分析函数.doc”和“oracle_10g分析函数最终版.pdf”这两个文档,你可以深入学习更多关于Oracle分析函数的用法和实例,进一步提升你在数据库管理领域的专业技能。

    Oracle分析函数参考手册

    Oracle分析函数是数据库管理系统Oracle中的一种高级SQL特性,它们在处理数据时提供了强大的计算和聚合能力,尤其在处理分组数据时。分析函数不同于普通的聚合函数(如SUM、AVG、COUNT等),因为它们能够在每个分组内...

    Oracle_详解分析函数

    本文将详细介绍Oracle分析函数,并通过具体实例来帮助读者更好地理解和应用这些功能。 #### 二、分析函数分类与应用 分析函数主要分为五大类: 1. **等级函数**:如`RANK`, `DENSE_RANK`, `ROW_NUMBER`等,用于对...

    oracle函数实例分析

    ### Oracle函数实例分析 #### 1. 字符串处理函数 在Oracle数据库中,字符串处理函数是非常重要的工具,用于对数据进行格式化或者提取特定的信息。 - **UPPER()**:将指定的字符串转换为大写。 - 示例:`SELECT ...

    Oracle 分析函数使用介绍

    在本文中,我们将深入探讨Oracle分析函数的使用方法,以及它们如何帮助我们进行数据统计和分析。 1. **窗口函数概念** 分析函数也被称为窗口函数,因为它们在数据集的一个“窗口”或分区上操作,这个窗口可以包含...

    Oracle函数大全实例

    本文将深入探讨Oracle中的几种主要函数类型:单行函数、多行函数以及分组函数,并给出相应的实例来帮助理解。 1. **单行函数** 单行函数在处理每一行数据时返回一个结果。它们分为字符函数、数字函数、日期函数和...

    Oracle 分析函数

    Oracle分析函数是数据库查询中的一种高级特性,它允许在单个SQL语句中对一组行进行聚合操作,而不仅仅是整个结果集。分析函数通常用于计算累积、排名、分组等复杂计算,对于数据处理和报告生成非常有用。下面将详细...

    Oracle分析函数使用总结

    Oracle分析函数是数据库查询中的强大工具,它们允许对数据集进行聚合操作,同时保留原始行的信息。在Oracle数据库中,分析函数主要分为评级函数、窗口函数和聚合函数等几类。本文将重点讨论评级函数的使用,包括RANK...

    Oracle百分比分析函数RATIO_TO_REPORT() OVER()实例详解

    Oracle数据库中的RATIO_TO_REPORT()函数是一个非常有用的分析函数,尤其在进行数据比例分析和比较时。这个函数能够计算一个值相对于所有值总和的比例,返回的结果是一个百分比。配合OVER()子句,它可以用于全局或者...

Global site tag (gtag.js) - Google Analytics