Oracle学习笔记:rank、dense_rank、row_number、ntile等排序算法
在 oracle 中有很多函数可以实现排序的功能,但是不尽相同。下面一一解说。
row_number函数
功能:可实现分组排序,为数据行添加序号,多用于分页查询。
语法:row_number() over(partition by column order by column desc)
select *,
row_number() over(partition by id order by score desc) as rank
from Score;
注意:当存在相同成绩的学生时,row_number() 会依次进行排序,序号不相同,例如:1、2、3、4、5……
row_number() 的值不会存在重复,当排序的值相同时,按照表中记录的顺序进行排列。
rank函数
功能:针对某一个字段进行排序,跳跃排名。
语法:rank() over(partition by column order by column desc)
select *,
rank() over(partition by id order by score desc) as rank
from Score;
注意:当存在相同成绩的学生时,rank() 的排名是一样的,例如:1、2、2、2、5……
dense_rank函数
功能:同样的,排序函数,稍微有点不同,密集排名。
语法:dense_rank() over(partition by column order by column desc)
select *,
dense_rank() over(partition by id order by score desc) as rank
from Score;
注意:dense_rank() 是密集排名,排名具有连续性,例如:1、2、2、2、3……
ntile函数
功能:oracle 中的分析函数,对一个数据分区中的有序结果集进行划分,将其分组为各个桶,并为每个小组分配一个唯一的组编号。默认是对表在不做任何操作之前进行切片分组的。
语法:ntile(n) over(partition by column order by column desc)
select shopname,
sales,
date2,
ntile(3) over(partition by shopname order by sales desc nulls last)
from temp_cwh_window;
根据shopname进行分组,再按sales排序之后分为3个桶。
Oracle学习笔记:rank、dense_rank、row_number、ntile等排序算法的更多相关文章
- [z]一个SQL语句分清楚RANK(),DENSE_RANK(),ROW_NUMBER()三个排序的不同
转自:http://blog.csdn.net/s630730701/article/details/51902762 在SCOTT用户下,执行下面SQL; SELECT s.deptno,s.ena ...
- [转]oracle分析函数Rank, Dense_rank, row_number
oracle分析函数Rank, Dense_rank, row_number 分析函数2(Rank, Dense_rank, row_number) 目录 ==================== ...
- oracle分析函数Rank, Dense_rank, row_number
http://www.cnblogs.com/wuyisky/archive/2010/02/24/oracle_rank.html 目录=============================== ...
- Oracle分析函数 — rank, dense_rank, row_number用法
本文通过例子演示了Oracle分析函数 —— rank, dense_rank, row_number的用法. //首先建score表 create table score( course nva ...
- Oracle 的开窗函数 rank,dense_rank,row_number
1.开窗函数和分组函数的区别 分组函数是指按照某列或者某些列分组后进行某种计算,比如计数,求和等聚合函数进行计算. 开窗函数是指基于某列或某些列让数据有序,数据行数和原始数据数相同,依然能曾现个体数据 ...
- Oracle学习笔记三 SQL命令
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)
- oracle学习笔记第一天
oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字 1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...
- rank,dense_rank,row_number使用和区别
rank,dense_rank,row_number区别 一:语法(用法): rank() over([partition by col1] order by col2) dense ...
- Oracle学习笔记——点滴汇总
Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster
- Oracle学习笔记之四sp1,Oracle 11g的常用函数
从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i) 分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...
随机推荐
- 认识理解Java中native方法(本地方法)
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可 ...
- Java中遍历Map的四种方式
Demo如下 Map<String, String> map = new HashMap<>(); map.put("key1","data1&q ...
- 用ConfigMap管理配置(10)
一.ConfigMap介绍管理配置: ConfigMap介绍 Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMa ...
- xcode报错: 找不到路径或者资源错误:no such file or directory
报错截图: 出现的问题: 运行项目页面图片不显示. 解决方法: 1>[COMMAND+shift+G],前往文件夹,输入: ~/Library/Developer/Xcode/DerivedD ...
- Jenkins创建镜像后无法推送到harbor的问题
https://blog.csdn.net/mydeman/article/details/79042848 1.先切换到root账号,用root登录harbor,就可以push $ sudo pas ...
- WordPress自定义菜单和修改去除多余的css
这里主要是用于模板制作的,一般前端已经写好了,我们只要将前端的内容套用WordPress后台就可以了. 所以我们在模板制作过程中,需要自定义WordPress菜单. 在functions.php文件中 ...
- selenium3关于ddt数据驱动。。
from selenium import webdriver import ddt import time import unittest @ddt.ddt class TestLogin(unitt ...
- 【miscellaneous】语音识别工具箱综述和产品介绍
原文:http://www.thinkface.cn/thread-893-1-1.html 今天是周末,想来想去,还是写一篇这样的博文吧.算是对语音识别这一段时间的总结,为后来的人融入铺好前面的路. ...
- java.net.UnknownHostException: MySQLMASTER: MySQLMASTER: 未知的名称或服务
linux环境在连接Activemq的时候报以下信息,找了半天配了下host OK了,记录一下. java.net.UnknownHostException: MySQLMASTER: MySQLM ...
- shell实践--简单抓取网页内容
#!/bin/bash base_path="https://testerhome.com/"user_path="ycwdaaaa/topics?page=" ...