开窗函数over partion by order by以及排序函数测试
开窗函数over partion by order by以及排序函数测试
- 开窗函数
- over函数
以下为MYSQL为例
开窗函数
开窗函数也叫分析函数。存在两种函数,一种开窗函数,例over等可以返回多个值,一种聚合函数,例min、max、sum等只返回一个值
over函数
course表所有数据:
// 所有数据
select * from course
可以直接使用over函数不带参数
//row_number() over()
select *,row_number() over() from course
over partition by 根据姓名进行分组
// row_number() over(partition by)
select *,row_number() over(partition by stuname) from course
over partition by order by 根据姓名分组的基础上,再根据成绩排序
//row_number() over(partition by order by)
select *,row_number() over(partition by stuname order by grade) '排序' from course
从上述例子中不难看出,row_number()对于相同的成绩,序号也会增加,使用rank()则相同的值序号相同,但是在后面继续排序时会跳过一位。
//rank over(partition by order by)
select *,rank() over(partition by stuname order by grade) '排序' from course
若不想跳过一位序号,可以使用dense_rank()
//dense_rank over(partition by order by)
select *,dense_rank() over(partition by stuname order by grade) '排序' from course
还有一个ntile函数,会对分组后的数据分块,序号到ntile()括号中的参数之后会从1重新开始排序
//ntile over(partition by order by)
select *,ntile(5) over(partition by stuname order by grade) '排序' from course
//ntile over(partition by order by)
select *,ntile(1) over(partition by stuname order by grade) '排序' from course
开窗函数over partion by order by以及排序函数测试相关推荐
- r语言rank降序_R语言学习笔记:sort、rank、order、arrange排序函数
R语言中排序有几个基本函数:sort().rank().order().arrange() 一.总结 sort()函数是对向量进行从小到大的排序 rank()函数返回的是对向量中每个数值对应的秩 or ...
- python中从小到大排序的函数_深入理解Python中的排序函数
由于 Python2 和 Python3 中的排序函数略有区别,本文以Python3为主. Python 中的排序函数有 sort , sorted 等,这些适用于哪些排序,具体怎么用,今天就来说一说 ...
- 14 | 排序优化:如何实现一个通用的、高性能的排序函数?
问题:平时的开发中,我们都是直接使用这些现成的函数来实现业务逻辑中的排序功能.这些排序函数是如何实现的吗?底层都利用了哪种排序算法呢?比如 C 语言中 qsort(),C++ STL 中的 sort( ...
- 14-排序优化:如何实现一个通用的、高性能排序函数?
几乎所有的编程语言都会提供排序函数,比如 C 语言中 qsort(),C++ STL 中的 sort().stable_sort(),还有 Java 语言中的 Collections.sort().在 ...
- hive踩坑笔记 —— 开窗函数为聚合函数时,加order by 与不加 order by的区别
over()开窗函数前分排序函数和聚合函数两种 当为排序函数,如row_number(),rank()等时,over中的order by只起到窗口内排序作用. 当为聚合函数,如max,min,coun ...
- 简单的签到代码_开窗排序函数解决连续签到问题|SQL
开窗排序函数除了在处理简单的排序问题外,它的应用场景远比我们想的要多.本文将对两个问题,介绍开窗排序函数的用法. 一.问题 有一张用户签到表[签到表],标记每天用户是否签到(说明:该表包含所有用户所有 ...
- R语言数据排序函数sort, order rank实战
R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...
- Mysql学习-group by with rollup 函数 和order by field()自定义排序函数
今天看到同事的代码,学习到了 group by with rollup 函数 和order by field()自定义排序函数 group by with rollup 函数 文章地址 https:/ ...
- SQLserver总结03(DDL、DML、DCL、查询、top、distinct、order by、聚合函数)
SQLserver总结(DDL.DML.DCL.查询.top.distinct.order by.聚合函数) use [wx105]; create table Dep ( id int primar ...
最新文章
- Vivado中Block Memory Generator v8.3的使用
- ubuntu 12.04 交叉编译 arm/mips 平台的 strace
- 树莓派 QT 编程下的硬件中断
- [Java核心技术(卷I)] - Java中的参数能做什么和不能做什么
- Docker最全教程——从理论到实战(二)
- 81. 搜索旋转排序数组 II---Leecode----java
- 漫步数理统计五——条件概率与独立(上)
- vim快捷键使用记录
- 再谈拍照,OPPO这次拿什么和iPhone7拼?
- 用SegNet进行室内布局语义分割
- C++基础::shared_ptr 编程细节(二)
- 浅谈谷歌(Google)退出中国大陆市场事件
- idea项目工具窗口
- stateflow之学习——01
- 栅栏布局合并html,制作简约CSS栅栏布局
- js pug 代码_Pug模板(一)
- 2007年浙江高考满分作文——行走在消逝中
- UWP中的Direct2D
- 电脑版微信怎么双开、多开 超级简单
- 迷宫寻宝(自编简单版)