当前位置: 首页 > news >正文

建站之星官网巴中市住房和城乡建设局官方网站

建站之星官网,巴中市住房和城乡建设局官方网站,彩页设计费多少,网站怎么销售本章来讲解一下经常使用的排序函数#xff0c;可以用来进行统计成绩排名、售卖情况排名等。 目录 1.row_number函数、rank函数、dense_rank函数的区别和用法 1.row_number函数 2.rank函数 3.dense_rank函数 2.partition by函数的用法 1、over函数的写法#xff1a; 2…本章来讲解一下经常使用的排序函数可以用来进行统计成绩排名、售卖情况排名等。 目录 1.row_number函数、rank函数、dense_rank函数的区别和用法 1.row_number函数 2.rank函数 3.dense_rank函数 2.partition by函数的用法 1、over函数的写法 2、分区函数Partition By与rank()的用法“对比”分区函数Partition By与row_number()的用法 2、分区函数Partition By与rank()的用法“对比”分区函数Partition By与dense_rank()的用法 1.row_number函数、rank函数、dense_rank函数的区别和用法 1.row_number函数 row_number的用途非常广泛排序最好用它它会为查询出来的每一行记录生成一个序号依次排序且不会重复注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号。 2.rank函数 rank函数用于返回结果集的分区内每行的排名行的排名是相关行之前的排名数加一。简单来说rank函数就是对查询出来的记录进行排名与row_number函数不同的是rank函数考虑到了over子句中排序字段值相同的情况如果使用rank函数来生成序号over子句中排序字段值相同的序号是一样的后面字段值不相同的序号将跳过相同的排名号排下一个也就是相关行之前的排名数加一可以理解为根据当前的记录数生成序号后面的记录依此类推。 3.dense_rank函数 dense_rank函数的功能与rank函数类似dense_rank函数在生成序号时是连续的而rank函数生成的序号有可能不连续。dense_rank函数出现相同排名时将不跳过相同排名号rank值紧接上一次的rank值。在各个分组内rank()是跳跃排序有两个第一名时接下来就是第三名dense_rank()是连续排序有两个第一名时仍然跟着第二名。 借助实例能更直观地理解 假设现在有一张学生表student学生表中有姓名、分数、课程编号。 select * from student; 现在需要按照课程对学生的成绩进行排序 --row_number() 顺序排序 select name,course,row_number() over(partition by course order by score desc) rank from student; --rank() 跳跃排序如果有两个第一级别时接下来是第三级别 select name,course,rank() over(partition by course order by score desc) rank from student; --dense_rank() 连续排序如果有两个第一级别时接下来是第二级别 select name,course,dense_rank() over(partition by course order by score desc) rank from student; 取得每门课程的第一名 --每门课程第一名只取一个 select * from (select name,course,row_number() over(partition by course order by score desc) rank from student) where rank1; --每门课程第一名取所有 select * from (select name,course,dense_rank() over(partition by course order by score desc) rank from student) where rank1; --每门课程第一名取所有 select * from (select name,course,rank() over(partition by course order by score desc) rank from student) where rank1; 附每门课程第一名取所有的其他方法使用group by 而不是partition by select s.* from student sinner join(select course,max(score) as score from student group by course) con s.coursec.course and s.scorec.score;  --或者使用using关键字简化连接 select * from student sinner join(select course,max(score) as score from student group by course) cusing(course,score); 关于Parttion by Parttion by关键字是Oracle中分析性函数的一部分用于给结果集进行分区。它和聚合函数Group by不同的地方在于它只是将原始数据进行名次排列能够返回一个分组中的多条记录记录数不变而Group by是对原始数据进行聚合统计一般只有一条反映统计值的结果每组返回一条。 TIPS 使用rank over()的时候空值是最大的如果排序字段为null, 可能造成null字段排在最前面影响排序结果。 可以这样 rank over(partition by course order by score desc nulls last) 总结 在使用排名函数的时候需要注意以下三点 1、排名函数必须有 OVER 子句。 2、排名函数必须有包含 ORDER BY 的 OVER 子句。 3、分组内从1开始排序。 2.partition by函数的用法 group by是分组函数partition by是分区函数像sum()等是聚合函数注意区分。 1、over函数的写法 overpartition by cno order by degree 先对cno 中相同的进行分区在cno 中相同的情况下对degree 进行排序 2、分区函数Partition By与rank()的用法“对比”分区函数Partition By与row_number()的用法 例查询每名课程的第一名的成绩 1使用rank() SELECT * FROM (select sno,cno,degree,rank()over(partition by cno order by degree desc) mm from score) where mm 1;得到结果 2使用row_number() SELECT * FROM (select sno,cno,degree,row_number()over(partition by cno order by degree desc) mm from score) where mm 1;得到结果 3rank()与row_number()的区别 由以上的例子得出在求第一名成绩的时候不能用row_number()因为如果同班有两个并列第一row_number()只返回一个结果。 2、分区函数Partition By与rank()的用法“对比”分区函数Partition By与dense_rank()的用法 例查询课程号为‘3-245’的成绩与排名 1 使用rank() SELECT * FROM (select sno,cno,degree,rank()over(partition by cno order by degree desc) mm from score) where cno 3-245得到结果 2 使用dense_rank() SELECT * FROM (select sno,cno,degree,dense_rank()over(partition by cno order by degree desc) mm from score) where cno 3-245得到结果 3rank()与dense_rank()的区别 由以上的例子得出rank()和dense_rank()都可以将并列第一名的都查找出来但rank()是跳跃排序有两个第一名时接下来是第三名而dense_rank()是非跳跃排序有两个第一名时接下来是第二名。 参考Oracle中row_number()、rank()、dense_rank() 的区别 参考分区函数Partition By的用法
http://www.ho-use.cn/article/10818625.html

相关文章:

  • 手机网站微信支付代码vps运行wordpress
  • 专业做家居的网站钓鱼平台设计
  • 哪个公司做网站推广最好网站开发工程师是什么内容
  • 攀枝花做网站wdcp拒绝访问网站
  • 浏览国外网站dns给个免费的网站好人有好报
  • 怎样建设公司的网站wordpress分目录的标题
  • 温州个人建站模板网站建设问题
  • 电子商务网站建设规划书范文烟台网络推广公司
  • 桂电做网站的毕设容易过嘛网站建设需要学什么语言
  • 地图网站开发值得买wordpress
  • 无锡手机网站建设网络工程师怎么自学
  • 互助平台网站制作动画设计基础
  • 网站外链坏处wordpress 主题 the7
  • 钢材原材料东莞网站建设wordpress 内嵌播放器
  • 泸州市建设职工培训中心网站WordPress网址导航主题HAOWA
  • 免费做的网站怎么设置域名做前端的女生压力大吗
  • 男女做羞羞漫画网站网站建设品牌公司哪家好
  • 企业做可信网站认证的好处wordpress的后台地址
  • 网站安全建设方案需求分析做网站兼职
  • wordpress 多站点 拷贝如何在外管局网站上做延期
  • 柳州网站建设价格网站建设经费预算计划
  • 企业备案网站服务内容wordpress虚线框
  • 宁波网站推广有哪些深圳建设造价信息网站
  • 广州网站建设乛新科送推广go语言可以做网站吗
  • 阿里网站年费怎么做分录网站数据比较
  • 做店铺图片什么网站大学生网站开发
  • 四川门户网站建设郑州市网站制作公司
  • 大连网站建设方法淘宝客网站怎么做
  • 网站建设与推广的步骤百度搜索引擎入口登录
  • 做网站前台开发学习html编辑器安卓版下载