语法

row_number() over( [partition by col1] order by col2[desc]) 
  1. row_number() 为返回的记录定义各行编号
  2. pritition by 分组
  3. order by 排序

实例

实例数据来源,利用pgAdmin数据库实践

建表

create table student(id serial,name character varying,course character varying,score integer);

插入数据

insert into student (name,course,score) values('周润发','语文',89);
insert into student (name,course,score) values('周润发','数学',99);
insert into student (name,course,score) values('周润发','外语',67);
insert into student (name,course,score) values('周润发','物理',77);
insert into student (name,course,score) values('周润发','化学',87);
insert into student (name,course,score) values('周星驰','语文',91);
insert into student (name,course,score) values('周星驰','数学',81);
insert into student (name,course,score) values('周星驰','外语',88);
insert into student (name,course,score) values('周星驰','物理',68);
insert into student (name,course,score) values('周星驰','化学',83);
insert into student (name,course,score) values('黎明','语文',85);
insert into student (name,course,score) values('黎明','数学',65);
insert into student (name,course,score) values('黎明','外语',95);
insert into student (name,course,score) values('黎明','物理',90);
insert into student (name,course,score) values('黎明','化学',78);

根据分数排序

select *,row_number() over(order by score desc) from student;

根据科目分组,按分数排序

select *,row_number() over(partition by course order by score desc) from student;


获取每个科目最高分(用子查询,降序)

select * from(select *,row_number() over(partition by course order by score desc)rank from student)t where rank=1;


获取每个科目最低分

select * from(select *,row_number() over(partition by course order by score )rank from student)t where rank=1;

PostgreSQL_row_number() over()相关推荐

  1. PostgreSQL_row_number() over()_应用实例

    任务 用credit.loanborrow(用户借款表)中的数据,加工出以下字段: custid custwholeinfoid loanborrowid (就是credit.loanborrow表的 ...

最新文章

  1. OpenCV 笔记(07)— Mat 对象输出格式设置(Python 格式、CSV 格式、NumPy 格式、C 语言格式)
  2. Closure Compiler 使用
  3. Keil中的警告的解决
  4. Python剑指offer:和为s的连续整数序列
  5. 【转】 Ubuntu 11.04 下安装配置 JDK 7
  6. PopupWindow在项目中的使用 并指定位置及加入动画效果
  7. C语言把浮点数转换为字符串
  8. Java I/O系统之Object流
  9. AppCan开发者资料分享(定期更新)
  10. Linux下安装anaconda及遇到的问题
  11. (2)机器学习_train_test_split
  12. Python Numpy模块函数np.c_和np.r_学习使用
  13. 把华为OLT主控设置为上联的方法
  14. 基于Scala版本的TMDB大数据电影分析项目
  15. (CRON) info (No MTA installed, discarding output)” error in the syslog
  16. Cesium 视频融合,边缘模糊
  17. Java篇第三回——运算符、表达式与语句(C不好的也快来)
  18. Python数据可视化——pyecharts学习笔记
  19. 首席工程师揭秘:LinkedIn大数据后台是如何运作的
  20. 读英语计算机书籍读后感,英文书读后感范文(精选4篇)

热门文章

  1. 如何优化cocos2d程序的内存使用和程序大小:第一部分
  2. 利用动态加载模板,配合ajax实现无刷新操作
  3. 青少年编程竞赛交流群第050次活动录播
  4. 【青少年编程】【Scratch】04 事件模块
  5. 【组队学习】【23期】Datawhale深度推荐模型
  6. LeetCode实战:二叉树的最近公共祖先
  7. LeetCode实战:删除链表中的节点
  8. 5分钟学会打游戏的活体人脑细胞,比 AI 学习速度更快
  9. 英特尔发布智慧社区解决方案,全栈技术支撑,涵盖五大战略方向
  10. 龙芯架构应用迁移技术分享——搜狗输入法应用迁移