`

14、oracle --sql 排名/相邻/统计函数

    博客分类:
  • DB
 
阅读更多
1、排名函数
   排名的几个分析函数 row_number   rank    dense_rank
   语法:row_number() over(order by column)
         重复的数据,不并列 比如 30,30,40 排名为3,4,5
   语法:rank () over (order by b)
         重复的数据,并列,占用下个排名  比如 30,30,40 排名 3,3,5
   语法:dense_rank()over(order by cnt) d
         重发的数据,并列,不占用下个排名 比如30,30,40 排名 3,3,4
注意:排名分析函数里的order by子句是必须的;partition by 和 order by后均可跟多列;只在没有partition by 的情况下, rownum才能做到和row_number同样的事情
     select dept_id, sale_date, goods_type, sale_cnt, row_number()over(partition by
dept_id order by sale_cnt desc) rn, rank()over(partition by dept_id order by sale_cnt
desc) rk, dense_rank()over( order by sale_cnt,dept_id desc) drk
from lw_sales where trunc(sale_date,'MM')=date'2013-04-01'

2、相邻函数
   相邻类分析函数 lag和lead
   LAG 是取到排序后当前记录之前的记录
   LEAD 是取到排序后当前记录之后的记录
   select deptno, ename
, lag(ename,1,'AAA')over(partition by deptno order by ename) lower_name
, lead(ename,1,'ZZZ')over(partition by deptno order by ename) higher_name
from emp;
   和相邻行比较

3、统计函数
   相关统计分析函数  sum、avg、 max/min、first_value/last_value
   按部门按月累加统计
   with  t as (select dept_id, to_char(sale_date,'YYYY-MM') sale_month, sum(sale_cnt)
month_sale_cnt from lw_sales group by dept_id, to_char(sale_date,'YYYY-MM'))
select dept_id ,sum(month_sale_cnt) over (partition by dept_id order by sale_month) total from t
  平均统计avg
  最大最小max、min




  
分享到:
评论

相关推荐

    Oracle数据库SQL培训 数据库SQL语句编写培训教程 Oracle高级查询SQL优化 集合实际案例讲解 共26页.pptx

    在SQL查询中,这通常通过JOIN操作或窗口函数实现,如示例中的LEFT JOIN,以获取相邻记录的数据。 2. **同比/环比**:同比是指当前数值与去年同期数值的比较,而环比则是与前一时期数值的比较。在SQL中,同比可通过...

    sql高级进阶

    - 返回各部门工资排名在前面的员工:使用窗口函数进行排名计算。 - 计算出现次数最多的值:使用数据库提供的函数找出高频值。 - 求总和的百分比:计算总和的百分比并格式化输出。 7. 日期运算 - 加减日、月、年...

    Oracle分析函数实践 - blog.docx

    Oracle分析函数是数据库查询中非常强大的工具,它们用于处理复杂的报表和统计需求,特别是在在线分析处理(OLAP)环境中。分析函数与聚合函数的主要区别在于,聚合函数对每个组只返回一行结果,而分析函数则可以针对...

    sql面试题\oracle面试题目

    ### SQL与Oracle面试知识点解析 #### 1. 冷备份与热备份的不同点及各自的优点 - **冷备份**:通常在数据库完全关闭的情况下进行,适用于全盘备份。其主要优点在于备份速度快、数据一致性高,恢复过程简单快速。缺点...

    oracle 110个常用函数.zip

    在"Oracle 110个常用函数"这个资料中,我们很可能会找到一系列关于Oracle SQL函数的详细解释。这些函数涵盖了从数学运算到字符串处理,再到日期和时间操作的各种功能。 1. 数学函数:包括ABS()用于返回绝对值,CEIL...

    oracle函数大全(chm格式分类显示)

    分析函数如`RANK()`、`DENSE_RANK()`和`ROW_NUMBER()`用于排序和排名,`LEAD()`和`LAG()`获取相邻行的值,`FIRST_VALUE()`和`LAST_VALUE()`获取窗口内的第一个和最后一个值。这些函数在复杂的数据分析和报表生成中...

    oracle分析函数的用法

    通过熟练掌握Oracle分析函数,你可以实现更复杂的数据分析,如计算移动平均、差异、比率、排名等,这对于业务报告、数据分析和决策支持极其重要。了解如何有效地利用这些功能将极大地提升你的SQL查询能力和数据处理...

    oracle 分析函数总结

    总的来说,Oracle分析函数提供了一种高效且灵活的方式来处理复杂的数据分析任务,它结合了窗口概念和强大的排序功能,使得SQL查询能够完成更复杂的统计计算,从而帮助用户更好地理解和处理数据库中的数据。

    Oracle分析函数

    Oracle分析函数是一种强大的工具,它允许用户对数据进行复杂的查询和分析操作,这些操作远远超出了传统SQL的功能。与聚合函数不同,分析函数可以为每一组返回多行结果,这使得它非常适合进行更高级的数据统计和分析...

    CrackingTheSQLInterview:SQL面试问题汇编-http://xoraus.github.ioCrackingTheSQLInterview

    - 分析函数:RANK()、DENSE_RANK()、ROW_NUMBER()进行行编号,LEAD()和LAG()获取相邻行数据,FIRST_VALUE()和LAST_VALUE()获取首尾值。 - 分区函数:OVER()配合PARTITION BY实现窗口函数,用于计算每个分区内的...

    ORACLE报表分析利剑——分析函数

    分析函数作为Oracle数据库中一项高级功能,专为解决复杂报表统计需求设计,其核心优势在于能够对数据进行精细的分组处理后,计算基于这些分组的特定统计值。与传统的聚合函数不同,分析函数不仅能够实现分组统计,还...

    Oracle数据库中SQL开窗函数的使用

    开窗函数是SQL语言中的一个重要特性,它极大地增强了SQL的计算能力,特别是在处理复杂的排序、分组和统计问题时。开窗函数的概念起源于2003年ISO SQL标准,目的是解决传统SQL难以处理的复杂查询场景。Oracle、SQL ...

    Oracle 9i 分析函数参考手册

    10. STDDEV, STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP, VARIANCE:这些都是统计函数,用于计算标准差、方差等,以了解数据的分散程度。 分析函数的关键在于 `OVER` 子句,它可以定义“窗口”或“框架”,在这个...

    Oracle之分析函数讲解及PPT资源.zip

    Oracle数据库中的分析函数是SQL查询中的重要工具,用于在数据集上执行聚合操作,并且能够对每个分组或行提供上下文相关的计算。这些函数在处理复杂的数据统计和报表展示时非常有用,能够帮助我们高效地获取所需信息...

    Oracle_adv.zip_Oracle進階_oracle

    Oracle分析函数是在SQL查询中处理分组数据的强大工具,它们可以在聚合函数之前对数据进行计算,提供了更精细的数据分析能力。常见的分析函数包括: 1. **RANK()**:为每个分组内的行提供唯一的排名。 2. **DENSE_...

    SQL 21日自学通(中文版).pdf

    - **流行的SQL开发工具**:市场上有许多优秀的SQL开发工具,如MySQL Workbench、SQL Server Management Studio、Oracle SQL Developer等。这些工具提供了丰富的功能,帮助开发者更轻松地编写和测试SQL代码。 - **...

    Oracle 分区表 分区索引

    ### Oracle 分区表与分区索引详解 #### 一、Oracle分区概述 在Oracle数据库中,分区技术是一种非常有效的管理大型表和索引的方法。通过将一个大的表或索引分成多个较小的部分(分区),可以显著提高查询性能,并...

    sql学习笔记 常见问题总结

    SQL(Structured Query ...以上只是SQL学习笔记中的部分要点,实际应用中还需要结合具体数据库系统(如MySQL、Oracle、SQL Server等)的特点和最佳实践。通过持续学习和实践,才能真正精通SQL,成为数据管理的高手。

    oracle求同比,环比函数(LAG与LEAD)的详解

    Oracle中的LAG和LEAD函数是窗口函数(Window Function)的一部分,它们主要用于在数据集的行之间进行向前或向后的查找,以获取当前行之外的数据。这两个函数在数据分析、报表生成和业务智能应用中非常常见,特别是在...

Global site tag (gtag.js) - Google Analytics