Oracle组内排序常见函数
表结构及数据
-- ----------------------------
-- Table structure for GRADE
-- ----------------------------
DROP TABLE "GRADE";
CREATE TABLE "GRADE" ("ID" VARCHAR2(4 BYTE) VISIBLE,"JOB" VARCHAR2(32 BYTE) VISIBLE,"SCORE" VARCHAR2(10 BYTE) VISIBLE,"TO_DATE" DATE VISIBLE
);-- ----------------------------
-- Records of GRADE
-- ----------------------------
INSERT INTO "GRADE" VALUES ('1', 'C++', '11001', TO_DATE('2021-03-05 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('2', 'C++', '11001', TO_DATE('2021-03-09 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('3', 'C++', '9000', TO_DATE('2021-03-18 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('4', 'Java', '12000', TO_DATE('2021-03-14 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('5', 'Java', '13000', TO_DATE('2021-03-31 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('6', 'B', '12000', TO_DATE('2021-02-25 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('7', 'B', '11000', TO_DATE('2021-03-04 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('8', 'B', '9999', TO_DATE('2021-03-15 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
INSERT INTO "GRADE" VALUES ('9', 'C++', '6666', TO_DATE('2021-03-06 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));
1.组内排序 各个科目按照成绩排序,成绩相同按照时间 1,2,3,4,5
应用函数:row_number() over()
row_number() over(partition by 分组字段 order by 排序字段)
2.组内排序 各个科目按照成绩排序,成绩相同排序 下一个跳过 1,2,2,4,5
应用函数:rank() over()
rank() over(partition by 分组字段 order by 排序字段)
2.组内排序 各个科目按照成绩排序,成绩相同排序 下一个连续 1,2,2,3,4,5
应用函数:dense_rank() over()
dense_rank() over(partition by 分组字段 order by 排序字段)
Oracle组内排序常见函数相关推荐
- 如何实现Oracle先组内排序然后再组外排序
问题描述 工作中遇到一个问题,因为我本人的SQL技术太差了,写了好久,都没有处理好,大概的需求如下,有一个列表,根据一个字段排序,排序后的结果,再根据字段排序. 问题分析 为了让读者能够充分理解这个问 ...
- MySQL学习笔记:三种组内排序方法
由于MySQ没有提供像Oracle的dense_rank()或者row_number() over(partition by)等函数,来实现组内排序,想实现这个功能,还是得自己想想办法,最终通过创建行 ...
- 组内排序和组外排序的sql写法
表 id 班级 成绩 1 a 23 2 b 33 3 c ...
- 润乾报表实现组内排序报表及改进
报表开发中经常会遇到需要进行组内排序的报表,如按月份的分组汇总值排序显示,并显示每月销售额前十名的记录.使用报表工具一般通过隐藏行列辅助可以实现,下面通过实例说明润乾报表的实现过程,以及改进方案. 报 ...
- MySQL组内排序取最大值
最近业务反馈一个查询异常的问题,需要DBA对查询结果异常给出解释,并帮助他们解决该问题.问题本质是一个组内排序取最大值的问题,根据业务需求,我构建了测试用例 测试用例 --建表 create tabl ...
- mysql使用group by实现组内排序实战
一.前言 需求是:获取用户充值总数最多的前100名,并且获取最新充值的时间和充值数量 分析下: (1)首先是要获取用户充值的总数,然后进行排序取前100: (2)要获取用户的最新一次充值时间和金额,那 ...
- python数字排序分组代码_python pandas 组内排序、单组排序、标号的实例
摘要:本文主要是讲解一下,如何进行排序.分为两种情况,不分组进行排序和组内进行排序.什么意思呢?具体来说,我举个栗子. ****注意**** 如果只是单纯想对某一列进行排序,而不进行打序号的话直接使用 ...
- MapReduce的自制Writable分组输出及组内排序
问题描述: 输入文件格式如下: name1 2 name3 4 name1 6 name1 1 name3 3 name1 0 要求输出的文件格式如下: name1 ...
- Json数组列表中的数据分组排序、组内排序
文章目录 问题描述 方式一:先全部排序,在分组排序 方式二:使用HashMap取出来分组再组内排序 方式三:使用TreeMap取出来分组再组内排序 测试代码及耗时 问题描述 现在有一个用户信息数组,用 ...
最新文章
- 10、MySQL锁等待,死锁,死锁检测
- 成立阿里大农业兄弟连-万祥军:农民丰收节交易会乡村脱贫
- 在苏州当老师大概博士毕业,工作稳定后就准备要孩子了
- wxWidgets:wxSashWindow类用法
- php mysql 安装错误_Apache+php配置 Mysql安装出错解决办法
- 《剑指offer》按之字行顺序打印二叉树
- python 第13天作业
- hadoop-2.6.5安装
- 高并发下的系统设计(偏数据库设计)
- js判断数组中重复元素并找出_javascript查找数组中重复元素的方法
- Java 并发编程的艺术
- Chrome使用、插件、脚本
- linux防火墙配置怎么修改密码,Linux系统修改防火墙配置
- TF-IDF算法简介
- imx6ul使用官方SDK裸机及驱动包
- 数仓工具—Hive源码之SQL解析Antlr入门(7)
- 淘宝鹊桥计算工具安卓版小程序
- activiti删除流程
- Hadoop之——计算机网络端口的定义
- CWnd::SetCapture, ReleaseCapture, GetCapture