开窗函数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以及排序函数测试相关推荐

  1. r语言rank降序_R语言学习笔记:sort、rank、order、arrange排序函数

    R语言中排序有几个基本函数:sort().rank().order().arrange() 一.总结 sort()函数是对向量进行从小到大的排序 rank()函数返回的是对向量中每个数值对应的秩 or ...

  2. python中从小到大排序的函数_深入理解Python中的排序函数

    由于 Python2 和 Python3 中的排序函数略有区别,本文以Python3为主. Python 中的排序函数有 sort , sorted 等,这些适用于哪些排序,具体怎么用,今天就来说一说 ...

  3. 14 | 排序优化:如何实现一个通用的、高性能的排序函数?

    问题:平时的开发中,我们都是直接使用这些现成的函数来实现业务逻辑中的排序功能.这些排序函数是如何实现的吗?底层都利用了哪种排序算法呢?比如 C 语言中 qsort(),C++ STL 中的 sort( ...

  4. 14-排序优化:如何实现一个通用的、高性能排序函数?

    几乎所有的编程语言都会提供排序函数,比如 C 语言中 qsort(),C++ STL 中的 sort().stable_sort(),还有 Java 语言中的 Collections.sort().在 ...

  5. hive踩坑笔记 —— 开窗函数为聚合函数时,加order by 与不加 order by的区别

    over()开窗函数前分排序函数和聚合函数两种 当为排序函数,如row_number(),rank()等时,over中的order by只起到窗口内排序作用. 当为聚合函数,如max,min,coun ...

  6. 简单的签到代码_开窗排序函数解决连续签到问题|SQL

    开窗排序函数除了在处理简单的排序问题外,它的应用场景远比我们想的要多.本文将对两个问题,介绍开窗排序函数的用法. 一.问题 有一张用户签到表[签到表],标记每天用户是否签到(说明:该表包含所有用户所有 ...

  7. R语言数据排序函数sort, order rank实战

    R语言数据排序函数sort, order & rank实战 目录 R语言数据排序函数sort, order & rank实战 #sort vs. order vs. rank函数基础 ...

  8. Mysql学习-group by with rollup 函数 和order by field()自定义排序函数

    今天看到同事的代码,学习到了 group by with rollup 函数 和order by field()自定义排序函数 group by with rollup 函数 文章地址 https:/ ...

  9. 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 ...

最新文章

  1. Vivado中Block Memory Generator v8.3的使用
  2. ubuntu 12.04 交叉编译 arm/mips 平台的 strace
  3. 树莓派 QT 编程下的硬件中断
  4. [Java核心技术(卷I)] - Java中的参数能做什么和不能做什么
  5. Docker最全教程——从理论到实战(二)
  6. 81. 搜索旋转排序数组 II---Leecode----java
  7. 漫步数理统计五——条件概率与独立(上)
  8. vim快捷键使用记录
  9. 再谈拍照,OPPO这次拿什么和iPhone7拼?
  10. 用SegNet进行室内布局语义分割
  11. C++基础::shared_ptr 编程细节(二)
  12. 浅谈谷歌(Google)退出中国大陆市场事件
  13. idea项目工具窗口
  14. stateflow之学习——01
  15. 栅栏布局合并html,制作简约CSS栅栏布局
  16. js pug 代码_Pug模板(一)
  17. 2007年浙江高考满分作文——行走在消逝中
  18. UWP中的Direct2D
  19. 电脑版微信怎么双开、多开 超级简单
  20. 迷宫寻宝(自编简单版)

热门文章

  1. 【NDN VANET】Rapid Traffic Information Dissemination Using Named Data 学习笔记
  2. 低功耗蓝牙(BLE)如何做到LE ?
  3. 架构设计:宏观/中观/微观架构
  4. sqlserver创建视图索引
  5. html常用的特殊符号
  6. 计算机会计专用符号,代表会计的符号
  7. js 复制内容到剪切板
  8. 云鹏杂记 之 执行力
  9. Jsoup.parse
  10. Java物联网、人工智能和区块链编程实战