这篇文章主要介绍了PostgreSQL ROW_NUMBER() OVER()的用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。
语法:
1low _ NUMBER()OVER([prition BY col 1]ORDER BY col 2[desc])
解释:
行号()为返回的记录定义个行编号,按列一分区是根据第一栏分组,第2栏订购[ DESC ]是根据第2栏进行排序。
举例:
postgres=# create table student(id serial,name字符variable,课程字符变量,分数整数);
创建表格
postgres=#
postgres=# \d学生
表格" public.student "
列|类型|修饰符
- - -
id | integer | not null default next val(' student _ id _ seq ' : reg class)
名称|字符变化|
进程|字符变化|
分数|整数|
插入学生(姓名、课程、分数)值('周润发','语文',89);
插入学生(姓名、课程、分数)值('周润发','数学',99);
插入学生(姓名、课程、分数)值('周润发','外语',67);
插入学生(姓名、课程、分数)值('周润发','物理',77);
插入学生(姓名、课程、分数)值('周润发','化学',87);
插入学生(姓名、课程、分数)值('周星驰','语文',91);
插入学生(姓名、课程、分数)值('周星驰','数学',81);
插入学生(姓名、课程、分数)值('周星驰','外语',88);
插入学生(姓名、课程、分数)值('周星驰','物理',68);
插入学生(姓名、课程、分数)值('周星驰','化学',83);
插入学生(姓名、课程、分数)值('黎明','语文',85);
插入学生(姓名、课程、分数)值('黎明','数学',65);
插入学生(姓名、课程、分数)值('黎明','外语',95);
插入学生(姓名、课程、分数)值('黎明','物理',90);
插入学生(姓名、课程、分数)值('黎明','化学',78);
铜锡锌合金板(导航板的缩写)唐山企业网站;
1.根据分数排序
postgres=# select *,row_number() over(按分数表名排序)rn来自学生;
|id姓名|课程|分数| rn
- - - - -
2 | 周润发|数学| 99 | 1
13 | 黎明|外语| 95 | 2
6 | 周星驰|语文| 91 | 3
14 | 黎明|物理| 90 | 4
1 | 周润发|语文| 89 | 5
8 | 周星驰|外语| 88 | 6
5 | 周润发|化学| 87 | 7
11 | 黎明|语文| 85 | 8
10 | 周星驰|化学| 83 | 9
7 | 周星驰|数学| 81 | 10
15 | 黎明|化学| 78 | 11
4 | 周润发|物理| 77 | 12
9 | 周星驰|物理| 68 | 13
3 | 周润发|外语| 67 | 14
12 | 黎明|数学| 65 | 15
(15行)
氡是给我们的一个排序。