摘要:创建测试表给测试表插入数据张飞一年一班刘备一年一班李逵一年一班小动一年一班小智一年一班吕布一年二班赵云一年二班典韦一年二班关羽一年二班马超一年二班张媛一年一班不管在,还是在版的中,在排序的时候都可以用到三个函数,,列出每个班分数
--创建测试表 create table te.sc(id int, name varchar(20),class varchar(20), score int); --给测试表插入数据 insert into te.sc values (1,"张飞","一年一班",100); insert into te.sc values (2,"刘备","一年一班",99); insert into te.sc values (3,"李逵","一年一班",95); insert into te.sc values (4,"小动","一年一班",97); insert into te.sc values (5,"小智","一年一班",80); insert into te.sc values (6,"吕布","一年二班",67); insert into te.sc values (7,"赵云","一年二班",90); insert into te.sc values (8,"典韦","一年二班",89); insert into te.sc values (9,"关羽","一年二班",70); insert into te.sc values (10,"马超","一年二班",98); insert into te.sc values (11,"张媛","一年一班",100);
不管在oracle,还是在8.0版的mysql中,在排序的时候都可以用到三个函数:rank,row_number,dense_rank
--列出每个班分数排名前三的学生 select * from (select id, name, class, score , row_number() over (partition by class order by score desc) as r1, rank() over (partition by class order by score desc) as r2 , dense_rank() over (partition by class order by score desc) as r3 from te.sc) B where r1<=3 ; id name class score r1 r2 r3 1 张飞 一年一班 100 1 1 1 11 张媛 一年一班 100 2 1 1 2 刘备 一年一班 99 3 3 2 10 马超 一年二班 98 1 1 1 7 赵云 一年二班 90 2 2 2 8 典韦 一年二班 89 3 3 3
这三个函数的区别主要在分数一致的情况下,row_number()不重复排序,rank()重复且跳数字排序,dense_rank()重复且不跳数字排序。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/35340.html
摘要:创建测试表给测试表插入数据张飞一年一班刘备一年一班李逵一年一班小动一年一班小智一年一班吕布一年二班赵云一年二班典韦一年二班关羽一年二班马超一年二班张媛一年一班不管在,还是在版的中,在排序的时候都可以用到三个函数,,列出每个班分数 --创建测试表 create table te.sc(id int, name varchar(20),class varchar(20), score in...
摘要:在上一篇里,主要窗口函数的基本用法。在这一篇中,我们来看看除了聚合函数之外还支持哪些窗口函数吧。注意到虽然为和的员工,相同,但返回的行号仍然连续。返回分组后的行号,但和和函数都不同,当对比值重复时行号重复但不间断。 在上一篇里,主要窗口函数的基本用法。 在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数吧。 row_number() 返回分组后的行号。注意到虽...
摘要:在上一篇里,主要窗口函数的基本用法。在这一篇中,我们来看看除了聚合函数之外还支持哪些窗口函数吧。注意到虽然为和的员工,相同,但返回的行号仍然连续。返回分组后的行号,但和和函数都不同,当对比值重复时行号重复但不间断。 在上一篇里,主要窗口函数的基本用法。 在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数吧。 row_number() 返回分组后的行号。注意到虽...
摘要:在上一篇里,主要窗口函数的基本用法。在这一篇中,我们来看看除了聚合函数之外还支持哪些窗口函数吧。注意到虽然为和的员工,相同,但返回的行号仍然连续。返回分组后的行号,但和和函数都不同,当对比值重复时行号重复但不间断。 在上一篇里,主要窗口函数的基本用法。 在这一篇中,我们来看看postgresql除了聚合函数之外还支持哪些窗口函数吧。 row_number() 返回分组后的行号。注意到虽...
摘要:案例案例在文章列表中附带上前条评论,在获取文章列表时同时把每个文章的前条评论一同查询出来。这是典型分区查询案例,需要根据表中的字段进行分区,同时根据条件进行排序,把符合条件的前条是数据取出来。查询语句中定义变量以及函数的使用如何构建子查询。 案例 案例:Laravel 在文章列表中附带上前10条评论?,在获取文章列表时同时把每个文章的前10条评论一同查询出来。 这是典型分区查询案例,需...
阅读 804·2021-11-22 14:56
阅读 738·2021-11-11 16:54
阅读 6158·2021-09-23 11:55
阅读 2759·2021-09-22 15:57
阅读 3138·2021-09-02 15:40
阅读 2696·2021-08-27 16:25
阅读 495·2019-08-30 15:55
阅读 1555·2019-08-30 15:43