已知:两种类型的排序(分区和非分区):使用和不使用分区

-计算两种方式(连续、不连续),相应的功能:dense_rank,秩



查询原始数据:学号、姓名、职称、成绩

SELECT * FROM t_score






s_id


s_name


sub_name


退休主管服务队










中国人


八十







丽莎


数学


八十










数学










丽莎


中国人


五十







张三丰


中国人










张三丰


数学


U3000







张三丰


体育


一百二十







杨过


java


九十







迈克


C++


八十







张三丰


甲骨文公司










杨过


甲骨文公司


七十七







丽莎


甲骨文公司


七十七






查询每个学生的Oracle排名(简单排名)
选择sc.s_id,sc.s_name,sub_name,sc.score,
等级()在(按评分排序顺序)排名
从t_score SC
在sub_name = 'oracle







s_id


s_name


sub_name


退休主管服务队


排名







杨过


甲骨文公司


七十七










丽莎


甲骨文公司


七十七










张三丰


甲骨文公司













对比:秩()和():dense_rank间断排名连续排名(都是简单的排名)

选择sc.s_id,sc.s_name,sub_name,sc.score,
dense_rank()在(按评分排序顺序)排名
从t_score SC
在sub_name = 'oracle






s_id


s_name


sub_name


退休主管服务队


排名







杨过


甲骨文公司


七十七










丽莎


甲骨文公司


七十七










张三丰


甲骨文公司












每个年级学生的排名(分部排名)
选择sc.s_id,sc.s_name,sub_name,sc.score,
秩()超过
(按评分排序顺序排名sub_name分区)
从t_score SC






s_id


s_name


sub_name


退休主管服务队


排名







杨过


java


九十










杨过


甲骨文公司


七十七










丽莎


甲骨文公司


七十七










张三丰


甲骨文公司













迈克


C++


八十










张三丰


数学


U3000










丽莎


数学


八十













数学













张三丰


体育


一百二十













中国人


八十










丽莎


中国人


五十










张三丰


中国人












搜索每一部分的前2名(分区排名)

比如:新闻专栏,专栏的前3条新闻。

货物清单是每种货物中的前10种。


从中选择*(
选择sc.s_id,sc.s_name,sub_name,sc.score,
在dense_rank()
(按评分排序顺序排名sub_name分区)
从t_score SC
x)
其中x排序为< = 2







s_id


s_name


sub_name


退休主管服务队


排名







杨过


java


九十










杨过


甲骨文公司


七十七










丽莎


甲骨文公司


七十七










张三丰


甲骨文公司













迈克


C++


八十










张三丰


数学


U3000










丽莎


数学


八十










张三丰


体育


一百二十













中国人


八十










丽莎


中国人


五十










询问学生的总分
选择s_id,s_name,总和(评分)sum_score从t_score
集团通过s_id,s_name






s_id


s_name


sum_score










八十







丽莎


二百零七







张三丰


一百三十







杨过


一百六十七







迈克


八十






根据总分查询学生的姓名
选择x *,
等级()在(由sum_score倒序)排名
(从
选择s_id,s_name,总和(评分)sum_score从t_score
集团通过s_id,s_name)X






s_id


s_name


sum_score


排名







丽莎


二百零七










杨过


一百六十七










张三丰


一百三十













八十










迈克


八十










Grammar:
排序()(排序字段的顺序)
秩()在(按组字段在分区中按排序字段顺序)

1。|降序排序顺序:ASC相关业务:
例子:寻找优秀学生:成绩:迟到的降序:升序
2。分区字段:根据哪个字段划分哪个字段。

问:分区和组之间的区别是什么
分区只是原始数据的顺序(记录的数目是常量)。
组是原始数据的聚合(更少的记录,每组的一个)和注意:聚合。

uff1a脚本


创建表t_score

自动识别号码的主键,
s_id号(3),
s_name char(8)不为空,
sub_name VARCHAR2(20),
进球数(2)
);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
价值观(8, 1,三,语言,80);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(9, 2,‘李四',‘数学',80);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
价值观(10, 1,张三,数学,0);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
价值观(11, 2,‘李四',‘语言',50);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
价值观(12, 3,‘张三丰',‘语言',10);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(13, 3,张三丰,数学,NULL);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
价值观(14, 3,张三丰,体育,120);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(15, 4,'杨过','java ',90);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(16, 5,迈克,C + +,80);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(3, 3,'张三丰','oracle ',0);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(4, 4,'杨过','oracle ',77);
插入t_score(自动识别,s_id,s_name,sub_name,评分)
值(17, 2,李四,'oracle ',77);
承诺;