zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle排名函数(Rank)实例详解

Oracle实例 详解 函数 排名 RANK
2023-06-13 09:20:08 时间
select sc.s_id,sc.s_name,sub_name,sc.score, dense_rank() over (order by score desc) 名次 from t_score sc where sub_name= Oracle

·类似:新闻表,求栏目点击率在前3位的新闻。
商品表,求各类别销售额在前10位的商品。

select * from (
select sc.s_id,sc.s_name,sub_name,sc.score,
dense_rank() over
(partition by sub_name order by score desc) 名次
from t_score sc
) x
where x.名次 =2
rank() over (order by 排序字段 顺序) rank() over (partition by 分组字段 order by 排序字段 顺序) 1.顺序:asc|desc 名次与业务相关: 示例:找求优秀学员:成绩:降序 迟到次数:升序 2.分区字段:根据什么字段进行分区。 问题:分区与分组有什么区别 ·分区只是将原始数据进行名次排列(记录数不变), ·分组是对原始数据进行聚合统计(记录数变少,每组返回一条),注意:聚合。

脚本:

create table t_score
(
autoid number primary key,
s_id number(3),
s_name char(8) not null,
sub_name varchar2(20),
score number(10,2)
);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (8, 1, 张三 , 语文 , 80);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (9, 2, 李四 , 数学 , 80);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (10, 1, 张三 , 数学 , 0);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (11, 2, 李四 , 语文 , 50);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (12, 3, 张三丰 , 语文 , 10);
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);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (15, 4, 杨过 , java , 90);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (16, 5, mike , c++ , 80);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (3, 3, 张三丰 , oracle , 0);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (4, 4, 杨过 , oracle , 77);
insert into t_score (autoid, s_id, s_name, sub_name, score)
values (17, 2, 李四 , oracle , 77);
commit;
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题

本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Oracle排名函数(Rank)实例详解