- 浏览: 264994 次
- 性别:
- 来自: 石家庄
文章分类
最新评论
-
di1984HIT:
写的不错。
设置WebLogic启动内存 -
tda7088:
不错,谢谢
设置WebLogic启动内存 -
java_linkin:
我按照这种方法设置的,但在启动tomcat时还是报内存溢出
Tomcat内存问题(一):Java heap space -
ileson:
...
Tomcat内存问题(一):Java heap space -
helloqidi:
呵呵,谢谢分享
在命令提示符下启动Oracle
Rank()使用说明:
a. 函数简介:
返回结果集分区内指定字段的值的排名,指定字段的值的排名是相关行之前的排名加一。
b. 语法:
RANK() OVER([<partiton_by_clause>]<order by clause>)
c. 参数说明:
partition_by_clause 将from子句生成的结果集划分为应用到RANK函数的分区。
Order_by_clause确定将RANK值应用到分区中的行时所使用的顺序。
d. 以下是实例使用:
1. 创建测试表
--创建表 -- Create table create table T_SCORE ( AUTOID NUMBER not null, S_ID NUMBER(3), S_NAME CHAR(8) not null, SUB_NAME VARCHAR2(20), SCORE NUMBER(10,2) ); -- Add comments to the table comment on table T_SCORE is '学生成绩表'; -- Add comments to the columns comment on column T_SCORE.AUTOID is '主键ID'; comment on column T_SCORE.S_ID is '学生ID'; comment on column T_SCORE.S_NAME is '学生姓名'; comment on column T_SCORE.SUB_NAME is '科目'; comment on column T_SCORE.SCORE is '成绩';
2. 创建测试记录
insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (8, 1, '张三 ', '语文', 80.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (9, 2, '李四 ', '数学', 80.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (10, 1, '张三 ', '数学', 0.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (11, 2, '李四 ', '语文', 50.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (12, 3, '张三丰 ', '语文', 10.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (13, 3, '张三丰 ', '数学', null); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (14, 3, '张三丰 ', '体育', 120.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (15, 4, '杨过 ', 'JAVA', 90.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (16, 5, 'mike ', 'c++', 80.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (3, 3, '张三丰 ', 'Oracle', 0.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (4, 4, '杨过 ', 'Oracle', 77.00); insert into t_score (AUTOID, S_ID, S_NAME, SUB_NAME, SCORE) values (17, 2, '李四 ', 'Oracle', 77.00);
3. 分不同情况查询
3.1 查询所有的学生成绩
--1.查询所有的学生成绩 select t.s_id 学号, t.s_name 姓名, t.sub_name 科目, t.score 成绩 from t_score t;
查询结果:
学号 | 姓名 | 科目 | 成绩 |
1 | 张三 | 语文 | 80.00 |
2 | 李四 | 数学 | 80.00 |
1 | 张三 | 数学 | 0.00 |
2 | 李四 | 语文 | 50.00 |
3 | 张三丰 | 语文 | 10.00 |
3 | 张三丰 | 数学 | |
3 | 张三丰 | 体育 | 120.00 |
4 | 杨过 | JAVA | 90.00 |
5 | mike | c++ | 80.00 |
3 | 张三丰 | Oracle | 0.00 |
4 | 杨过 | Oracle | 77.00 |
2 | 李四 | Oracle | 77.00 |
3.2 查询Oracle科目成绩名次-非连续rank
--2.查询Oracle科目成绩名次-非连续rank select t.s_id 学号, t.s_name 姓名, t.sub_name 科目, t.score 成绩, rank() over(order by score desc nulls last) 名次 from t_score t where t.sub_name = 'Oracle';
查询结果:
学号 | 姓名 | 科目 | 成绩 | 名次 |
4 | 杨过 | Oracle | 77.00 | 1 |
2 | 李四 | Oracle | 77.00 | 1 |
3 | 张三丰 | Oracle | 0.00 | 3 |
3.3查询Oracle科目成绩名次-连续dense_rank
--3.查询Oracle科目成绩名次-连续dense_rank select t.s_id 学号, t.s_name 姓名, t.sub_name 科目, t.score 成绩, dense_rank() over(order by score desc nulls last) 名次 from t_score t where t.sub_name = 'Oracle';
查询结果:
学号 | 姓名 | 科目 | 成绩 | 名次 |
4 | 杨过 | Oracle | 77.00 | 1 |
2 | 李四 | Oracle | 77.00 | 1 |
3 | 张三丰 | Oracle | 0.00 | 2 |
3.4 查询各学生各科排名
--4.查询各学生各科排名 select t.s_id 学号, t.s_name 姓名, t.sub_name 科目, t.score 成绩, dense_rank() over(partition by t.s_name order by score desc nulls last) 名次 from t_score t;
查询结果:
学号 | 姓名 | 科目 | 成绩 | 名次 |
5 | mike | c++ | 80.00 | 1 |
2 | 李四 | 数学 | 80.00 | 1 |
2 | 李四 | Oracle | 77.00 | 2 |
2 | 李四 | 语文 | 50.00 | 3 |
4 | 杨过 | JAVA | 90.00 | 1 |
4 | 杨过 | Oracle | 77.00 | 2 |
1 | 张三 | 语文 | 80.00 | 1 |
1 | 张三 | 数学 | 0.00 | 2 |
3 | 张三丰 | 体育 | 120.00 | 1 |
3 | 张三丰 | 语文 | 10.00 | 2 |
3 | 张三丰 | Oracle | 0.00 | 3 |
3 | 张三丰 | 数学 | 4 |
3.5 查询各科名次(分区)
--5.查询各科名次(分区) select t.s_id 学号, t.s_name 姓名, t.sub_name 科目, t.score 成绩, dense_rank() over(partition by t.sub_name order by score desc nulls last) 名次 from t_score t;
查询结果:
学号 | 姓名 | 科目 | 成绩 | 名次 |
4 | 杨过 | JAVA | 90.00 | 1 |
4 | 杨过 | Oracle | 77.00 | 1 |
2 | 李四 | Oracle | 77.00 | 1 |
3 | 张三丰 | Oracle | 0.00 | 2 |
5 | mike | c++ | 80.00 | 1 |
2 | 李四 | 数学 | 80.00 | 1 |
1 | 张三 | 数学 | 0.00 | 2 |
3 | 张三丰 | 数学 | 3 | |
3 | 张三丰 | 体育 | 120.00 | 1 |
1 | 张三 | 语文 | 80.00 | 1 |
2 | 李四 | 语文 | 50.00 | 2 |
3 | 张三丰 | 语文 | 10.00 | 3 |
发表评论
-
WINDOWS 安装Oracle 10g提示要求的结果: 5.0,5.1,5.2,6.0 之一解决方法
2011-08-12 14:49 3433在WIN7上安装oracle 10g时,提示如下信息: ... -
解决 ERROR - ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2011-08-09 22:30 1202服务器莫名其妙的报这个错,之前一直正常,从google获取解决 ... -
解决OracleDBConsoleorcl不能启动
2011-08-09 22:11 1688一 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没 ... -
IE9如何登录ERP FORM界面
2011-07-19 10:27 2561现在IE9已经发布正式版了,经过测试发现如果升级后,直接使用会 ... -
ORACL客户端查询汉字乱码问题(字符集引起)
2011-07-18 18:23 957通过修改注册表的方式可以解决,如下: HKEY_LOCAL_ ... -
ORACLE EBS 价目表的导入功能-存储过程BUG
2011-07-06 22:03 3143能模块:ERP价目表的批量导入 错误信息: ... -
EBS价目表设置导入功能(4)-提交请求
2011-07-06 21:27 24184.提交请求功能 procedure prc_do_pric ... -
EBS价目表设置导入功能(3)-价目表参数
2011-07-06 21:25 16763.导入价目表参数 3.1插入到价目参数表 (ori ... -
EBS价目表设置导入功能(2)-价目表行
2011-07-06 21:22 35322.价目表行(qp_interface_list_lines) ... -
EBS价目表设置导入功能(1)-价目表题头
2011-07-06 21:18 2115使用ORACLE EBS请求API开发价目表的导入功能 ... -
OCIEnvCreate函数返回-1的错误
2011-07-05 22:08 3416问题现象:在安装了ORACLE 10g客户端的服务器上,又安装 ... -
Oracle用户数据字典以及查询表字段
2011-06-24 10:16 1389查看当前用户的缺省表空间 select ... -
PL/SQL中查询中文乱码问题
2011-03-09 15:02 11991.在运行中输入:regedit,打开注册表编辑器; 2 ... -
ORACLE 动态执行SQL语句
2010-12-31 08:41 16401Oracle 动态SQL Oracle 动态SQL有两种写法 ... -
总结一下Oracle数据库中对日期的操作
2010-11-08 20:22 1262Oracle对日期的操作还是比较灵活的,以前简单总 ... -
Oracle函数Rank Over Partition使用实例详解(二)
2010-09-28 15:42 2281续上一篇总结: 3.6 查询各科名次(分区),排名前两 ... -
Oracle中使用语句创建Jobs
2010-01-11 22:53 8264今天修改业务时,需要用到Oracle数据库中的工作任务,对创建 ... -
Oracle性能参数查看
2010-01-10 23:23 16500、数据库参数属性 col PROPERTY_NAME fo ... -
ORACLE中null的排序问题
2009-09-05 11:47 1711问题描述: 在平时的业务处理中,经常遇到要对业务数据 ... -
在命令提示符下启动Oracle
2009-08-20 14:46 2065XP系统在命令提示符下启动Oracle监听及服务: C ...
相关推荐
### Oracle 语法之 OVER (PARTITION BY ..) 及开窗函数详解 #### 一、OVER (PARTITION BY ..) 概述 在Oracle数据库中,`OVER (PARTITION BY ...)` 是一种非常强大的功能,它允许用户在数据集上进行窗口操作。这在...
在本实例中,我们将详细探讨Oracle中的Rank()函数及其使用方法。 Rank()函数的基本用法是在`OVER()`子句中,通过指定`ORDER BY`来决定排名依据。其语法如下: ```sql rank() over (order by 排序字段 [asc|desc]) ...
### Oracle开发中的OVER函数详解 #### 一、Oracle分析函数简介 在Oracle数据库开发中,分析函数是一类非常强大的工具,主要用于实现复杂的查询需求,尤其是在处理大量数据时,能够提供高级的数据汇总、排序和筛选...
在Oracle数据库中,`RANK()`函数是一种窗口函数,它被用于在一组数据中为每一行分配一个唯一的排名。此函数特别适用于需要基于特定条件对数据进行排序并为每个记录分配一个名次的情况。在本篇文章中,我们将深入探讨...
### Oracle分析函数详解与应用实例 #### 引言 Oracle分析函数自Oracle 8i版本引入以来,为数据库用户提供了强大的数据分析能力。相比于传统的自联接、子查询或存储过程等复杂操作,分析函数能够以更简洁、高效的...
### Oracle分析函数详解 #### 一、Oracle分析函数简介 Oracle分析函数是在Oracle数据库中用于处理复杂的查询需求的一组强大的工具。与传统的SQL聚合函数(如`SUM`, `AVG`, `COUNT`等)不同,分析函数能够在同一...
### Oracle分析函数详解 #### 一、Oracle分析函数概述 Oracle分析函数,也称为窗口函数,是一种高级查询技术,主要用于处理复杂的数据分析需求,尤其是在OLAP(在线分析处理)场景中,它们能够对数据进行多层次的...
### Oracle分析函数详解 #### 一、概述 Oracle分析函数是一种强大的工具,它允许用户对数据进行复杂的查询和分析操作,这些操作远远超出了传统SQL的功能。与聚合函数不同,分析函数可以为每一组返回多行结果,这...
本文将深入探讨Oracle表中如何有效地去除重复数据,通过实例详细解析这一过程。 首先,我们需要理解什么是重复数据。在数据库中,重复数据指的是具有相同值的一组记录。这可能是由于数据输入错误、合并不同数据源...
### Oracle Row_Number 函数详解 #### 一、Row_Number 基础概念 在Oracle数据库中,`ROW_NUMBER()`函数是一种窗口函数,主要用于为查询结果中的每一行分配一个唯一的序列号。这一特性使得它在处理分组数据时非常...
### Oracle SQL基础知识详解 #### 一、书籍简介与目标读者 《Beginning Oracle SQL》是一本由Lex de Haan、Tim Gorman、Karen Morton、Daniel Fink和Inger Jorgensen共同编写的关于Oracle SQL的基础教程。该书由...