创新互联OceanBase教程:OceanBaseRANK

RANK 函数基于 OVER 子句中的 ORDER BY 表达式确定一组值的排名。当有相同排序值时,将会有相同的排名,并且值相同的行数会被记录到下个排名中。

成都创新互联是一家以成都网站建设、网页设计、品牌设计、软件运维、成都网站营销、小程序App开发等移动开发为一体互联网公司。已累计为成都木制凉亭等众行业中小客户提供优质的互联网建站和软件开发服务。

语法


RANK()  OVER ( [ PARTITION BY expr_list ] [ ORDER BY order_list ])

参数

参数

说明

OVER

使用 OVER 子句定义窗口进行计算。

PARTITION BY [col1, col2..]

指定开窗口的列。

ORDER BY col1[asc|desc]

指定排名依据的值。

expr_list

是数值类型或者可以转换成数值类型的类型。

order_list

定义排名值参考的数据列。

示例

建表 course,并向 name 和 grade 列插入数据,执行以下语句:


CREATE TABLE course
(
  name VARCHAR(8),
  grade NUMBER
);
INSERT INTO course VALUES('Linda',50);
INSERT INTO course VALUES('Tan',85);
INSERT INTO course VALUES('Tom',90);
INSERT INTO course VALUES('John',95);
INSERT INTO course VALUES('Mery',55);
INSERT INTO course VALUES('Peter',60);
INSERT INTO course VALUES('Jack',65);
INSERT INTO course VALUES('Rose',70);
INSERT INTO course VALUES('Tonny',75);
INSERT INTO course VALUES('Apple',80);
COMMIT;

执行以下语句:


SELECT name,grade ,RANK() over(ORDER BY grade DESC) FROM course;

查询结果如下:


+-------+-------+------------------------------+
| NAME  | GRADE | RANK()OVER(ORDERBYGRADEDESC) |
+-------+-------+------------------------------+
| John  |    95 |                            1 |
| Tom   |    90 |                            2 |
| Tan   |    85 |                            3 |
| Apple |    80 |                            4 |
| Tonny |    75 |                            5 |
| Rose  |    70 |                            6 |
| Jack  |    65 |                            7 |
| Peter |    60 |                            8 |
| Mery  |    55 |                            9 |
| Linda |    50 |                           10 |
+-------+-------+------------------------------+

网页名称:创新互联OceanBase教程:OceanBaseRANK
网页地址:http://www.csdahua.cn/qtweb/news44/275294.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网