zoukankan      html  css  js  c++  java
  • 【DB2】DB2中rank(),dense_rank(),row_number()的用法

    1.准备测试数据

    DROP TABLE oliver_1;
    CREATE TABLE oliver_1(CLASS_NO INT,CST_NAME VARCHAR(10),SUB_NO INT,SUB_NAME VARCHAR(20),SCORE int);
    
    
    INSERT INTO oliver_1 VALUES(1,'张三',30,'数学',89);
    INSERT INTO oliver_1 VALUES(1,'王五',20,'语文',90);
    INSERT INTO oliver_1 VALUES(1,'Siza',10,'英语',99);
    INSERT INTO oliver_1 VALUES(1,'李八',10,'英语',86);
    INSERT INTO oliver_1 VALUES(2,'Lisa',20,'语文',50);
    INSERT INTO oliver_1 VALUES(2,'Jack',30,'数学',60);

    2.详解rank(),dense_rank(),row_number()的用法

    2.1 rank()用法

    2.1.1不分组进行排序查询

    SELECT rank() over(ORDER BY CLASS_NO,SUB_NO) num,a.* FROM oliver_1 a

    查询结果如下:

    2.1.2对CST_NO分组后查询

    SELECT rank() over(PARTITION BY CLASS_NO ORDER BY CLASS_NO,SUB_NO) num,a.* FROM oliver_1 a

    查询结果如下:


    2.2dense_rank()的用法

    SELECT dense_rank() over(ORDER BY CLASS_NO,SUB_NO) AS num,a.* FROM oliver_1 a

    查询结果如下:

    区别:dense_rank()的查询与行号没关系,但是rank()的查询与行号相关的。


    2.3row_number()的用法

    SELECT row_number() over(ORDER BY CLASS_NO,SUB_NO),a.* FROM oliver_1 a

    查询结果如下:

  • 相关阅读:
    变量和简单的数据类型
    homebrew 取消每次安装检查更新
    小程序设置全屏
    linux 文本换行
    删除mac上的缓存文件
    laravel admin 中监听后台管理数据变化
    laravel快速添加观察者
    软件安装
    跨域数据
    将spring mvc 发布到服务器端
  • 原文地址:https://www.cnblogs.com/OliverQin/p/6611514.html
Copyright © 2011-2022 走看看