oracle之分析函数 开窗函数,Oracle之分析函数、开窗函数
一、rank() over(partition by 字段1 order by 字段2)
从最经典的一个例子来说:
这是原始表结构:
现在需要增加一列,用来统计每天不同城市的完成率排名。
这意味着要对其分组,按时间分组,并且同一时间返回多个结果
普通分组函数(group by按某一个条件分组,必须要使用聚合函数,每组返回一个结果)
这就需要使用rank() over(partition by 字段1 order by 字段2)函数,即分析函数(partition by)+开窗函数(order by)
select a.*,rank() over(partition by kpi_date order by 完成率 desc) 排名 from xxx_bb_s3_qs a order by kpi_date desc,完成率 desc;
partition by 字段1 是指按照字段1进行分组
order by 字段2 是指按照字段2进行排序
二、sum(字段1) over(partition by 字段2 order by 字段3)
三、rank() ,dense_rank()和 row_number() 区别
SQL> select region_id, customer_id, sum(customer_sales) total,
2 rank() over(order by sum(customer_sales) desc) rank,
3 dense_rank() over(order by sum(customer_sales) desc) dense_rank,
4 row_number() over(order by sum(customer_sales) desc) row_number
5 from user_order
6 group by region_id, customer_id;
REGION_ID CUSTOMER_ID TOTAL RANK DENSE_RANK ROW_NUMBER rank dense_rank row_number 8 18 1253840 11 11 11 5 2 1224992 12 12 12 9 23 1224992 12 12 13 9 24 1224992 12 12 14 10 30 1216858 15 13 15
rank() 相同,返回相同排名;排名跳跃式。
dense_rank() 相同,返回相同排名;排名连续式
row_number() 相同,返回不同排名;排名连续式。
oracle之分析函数 开窗函数,Oracle之分析函数、开窗函数相关推荐
- oracle上浮下浮分析函数_Oracle SQL高级编程——分析函数(窗口函数)全面讲解...
Oracle SQL高级编程--分析函数(窗口函数)全面讲解 概述 分析函数是以一定的方法在一个与当前行相关的结果子集中进行计算,也称为窗口函数. 一般结构为 Function(arg1 , arg2 ...
- ORACLE学习笔记(6)(分析函数)
-Oracle分析函数 ----(开窗函数,窗口函数) 分析函数介绍 分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值, 并且每一组 ...
- oracle分析函数以及窗口,Oracle分析函数与窗口函数
一.默认窗口与排名函数 最常用的分析函数是排名函数,用于返回当前记录在窗口中的位置.常用的排名函数包括rank().dense_rank().row_number()等.排名函数所对应的窗口函数必须指 ...
- oracle中累计求和_oracle累积求和分析函数sum over的使用
oracle sum()over函数的使用 over不能单独使用,要和分析函数:rank(),dense_rank(),row_number()等一起使用. over函数的参数:over(partit ...
- oracle有哪些常用函数,Oracle常用函数整理
点击关注上方"SQL数据库开发", 设为"置顶或星标",第一时间送达干货 之前已经给小伙伴们整理了SQL Server和Mysql的常用函数,还没有看的可以戳下 ...
- oracle中lead函数,oracle lead()函数 | 学步园
ead()是一个分析函数,适用于oracle 8i以后的版本, 使用这个函数,你可以一次性从表中查询多条记录, 而不需要进行表的自连接. 返回值:返回与当前行偏离offset行的列值. 语法: lea ...
- listagg 函数--oracle 11g release 2
http://xpchild.blog.163.com/blog/static/10180985920108485721969/ listagg 函数--oracle 11g release 2 20 ...
- row number函数 oracle,oracle函数 ROW_NUMBER()
[语法]ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) [功能]表示根据COL1分组,在分组内部根据 COL2排序,而这个值就表示每组内部排序后 ...
- oracle 不等函数,Oracle 不常用函数
1,wmsys.wm_contact 2,over() 开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下: over(order by salary) 按照 ...
最新文章
- 某程序员总结大厂程序员性格:阿里出来的是人精!百度出来的脾气好!美图出来的一根筋!头条出来的心高气傲!京东出来的满嘴是兄弟!...
- Microsoft Dynamics CRM 2011 JS操作集锦
- CentOS 6 使用 OpenLDAP 认证
- 单元测试命名最佳实践[关闭]
- 【搭建web服务器】以及web的所有配置
- ZK安装、ZK配置、ZK集群部署踩过的大坑
- jvisualvm命令 Java Virtual Machine Monitoring Troubleshooting
- 【更新】火星人敏捷开发手册2012-02-24新增敏捷计划内容
- Java虚拟机类加载机制--类加载器详解
- css三种标签隐藏方法(及它们用法区别), css显隐性问题
- 5万成员丨CSDN 大数据领域网红社区!
- 无法找到 :import javax.annotation.Resource-------Resource 这个注解
- 【Faster R-CNN论文精度系列】原文精析
- jQuery DOM操作 实现本地表格查询
- WPS pdf文档合并收费?Linux平台采用pdfunite实现pdf文档合并
- 基于vue的仿饿了么webapp
- python爬虫爬取b站_python爬虫11 | 这次,将带你使用python爬取b站上的NBA形象大使蔡徐坤和他的球友们-Go语言中文社区...
- c# winform 实现北通 游戏手柄 游戏摇杆二次开发 包含视觉头盔
- 聊城大学计算机学院宿管部,计算机学院
- 计算机实际应用ppt,全国创新杯说课大赛计算机应用基础类一等奖作品:幼儿园教师实际工作任务说课课件.ppt...