加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Oracle Rank() Over()

发布时间:2020-12-12 14:12:40 所属栏目:百科 来源:网络整理
导读:Rank()使用说明: a. 函数简介: 返回结果集分区内指定字段的值的排名,指定字段的值的排名是相关行之前的排名加一。 b. 语法: RANK() OVER([partiton_by_clause]order by clause) c. 参数说明: partition_by_clause 将from子句生成的结果集划分为应用到RA
学号 姓名 科目 成绩 1 张三 语文 80.00 2 李四 数学 0.00 50.00 3 张三丰 10.00 体育 120.00 4 杨过 JAVA 90.00 5 mike c++ Oracle 77.00 77.00

3.2 查询Oracle科目成绩名次-非连续rank

--2.查询Oracle科目成绩名次-非连续rank
  • t.s_name姓名,250)"> t.sub_name科目,250)"> t.score成绩,250)"> rank()over(orderbyscoredescnullslast)名次
  • fromt_scoret
  • wheret.sub_name='Oracle';
  • 查询结果:

    学号 姓名 科目 成绩 名次 4 杨过 Oracle 77.00 1 2 李四 3 张三丰 0.00 3

    3.3查询Oracle科目成绩名次-连续dense_rank

    --3.查询Oracle科目成绩名次-连续dense_rank
  • dense_rank()over( 查询结果:

  • 学号 姓名 科目 成绩 名次 4 杨过 Oracle 77.00 1 2 李四 3 张三丰 0.00 2

    3.4 查询各学生各科排名

    --4.查询各学生各科排名
  • dense_rank()over(partitionbyt.s_name

  • 学号 姓名 科目 成绩 名次 5 mike c++ 80.00 1 2 李四 数学 Oracle 77.00 2 语文 50.00 3 4 杨过 JAVA 90.00 1 张三 0.00 3 张三丰 体育 120.00 10.00 4

    3.5 查询各科名次(分区)

    --5.查询各科名次(分区)
  • byt.sub_name

  • 学号 姓名 成绩 名次 4 杨过 JAVA 90.00 1 77.00 2 李四 3 张三丰 0.00 2 5 mike c++ 80.00 数学 1 张三 3 体育 120.00 语文 50.00 10.00 来源: http://zhaisx.iteye.com/blog/774165 ?? ??

    (编辑:李大同)

    【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    Rank()使用说明:

    a. 函数简介:

    返回结果集分区内指定字段的值的排名,指定字段的值的排名是相关行之前的排名加一。

    b. 语法:

    RANK() OVER([<partiton_by_clause>]<order by clause>)

    c. 参数说明:

    partition_by_clause 将from子句生成的结果集划分为应用到RANK函数的分区。

    Order_by_clause确定将RANK值应用到分区中的行时所使用的顺序。

    d. 以下是实例使用:

    1. 创建测试表

    Sql代码
    1. --创建表
    2. --Createtable
    3. createtableT_SCORE
    4. (
    5. AUTOIDNUMBERnotnull,
    6. S_IDNUMBER(3),
    7. S_NAMECHAR(8) SUB_NAMEVARCHAR2(20),250)"> SCORENUMBER(10,2)
    8. );
    9. --Addcommentstothetable
    10. commentonis'学生成绩表';
    11. --Addcommentstothecolumns
    12. columnT_SCORE.AUTOID
    13. is'主键ID';
    14. columnT_SCORE.S_ID
    15. is'学生ID';
    16. columnT_SCORE.S_NAME
    17. is'学生姓名';
    18. columnT_SCORE.SUB_NAME
    19. is'科目';
    20. columnT_SCORE.SCORE
    21. is'成绩';

    2. 创建测试记录

    insertintot_score(AUTOID,S_ID,S_NAME,SUB_NAME,SCORE)

  • values(8,1,'张三','语文',80.00);
  • values(9,2,'李四','数学',85); font-size:14px; word-wrap:normal">values(10,0.00);
  • values(11,50.00);
  • values(12,3,'张三丰',10.00);
  • values(13,null);
  • values(14,'体育',120.00);
  • values(15,4,'杨过','JAVA',90.00);
  • values(16,5,'mike','c++',85); font-size:14px; word-wrap:normal">values(3,'Oracle',85); font-size:14px; word-wrap:normal">values(4,77.00);
  • values(17,77.00);
  • 3. 分不同情况查询

    3.1 查询所有的学生成绩

    --1.查询所有的学生成绩

  • selectt.s_id学号,t.s_name姓名,t.sub_name科目,t.score成绩
  • fromt_scoret;
  • 查询结果:

      推荐文章
        热点阅读