Mysql 开窗函数(窗口函数)

文章目录

  • 全部数据
  • 示例1(说明)开窗函数可以比groupby多查出条件列外的字段,开窗函数主要是为了跟聚合函数一起使用,达到分组统计效果,并且开窗函数的结果集基本都是跟总行数一样
  • 示例2
  • 示例3
  • 示例4
  • 错误示例1
  • 错误示例2
  • 错误示例3

全部数据

select * from xin_student_t;

Mysql 开窗函数(窗口函数)_第1张图片

示例1(说明)开窗函数可以比groupby多查出条件列外的字段,开窗函数主要是为了跟聚合函数一起使用,达到分组统计效果,并且开窗函数的结果集基本都是跟总行数一样

over() 括号里面就是定义窗口的内容了,partition 是分区,分组的意思。partition by 就是根据某个字段分组。
所以sum(student_age) over(partition by relation_id) ,就是先根据 relation_id分组,当前面加了sum(student_age)后就把根据 relation_id 分组后的,每个(组)窗口里面的字段 student_age 进行求和操作

select relation_id, student_name, sum(student_age)  over(partition by relation_id) sum开窗函数 from xin_student_t;

Mysql 开窗函数(窗口函数)_第2张图片

示例2

select relation_id, student_name, sum(student_age) over(partition by relation_id, student_name) sum开窗函数 from xin_student_t;

Mysql 开窗函数(窗口函数)_第3张图片

示例3

select relation_id, student_name, sum(student_age) over(partition by relation_id, student_name order by student_age) sum开窗函数 from xin_student_t;

Mysql 开窗函数(窗口函数)_第4张图片

示例4

select relation_id, student_name, first_value(student_age)  over(partition by relation_id)  sum开窗函数 from xin_student_t;

Mysql 开窗函数(窗口函数)_第5张图片

错误示例1

Mysql 开窗函数(窗口函数)_第6张图片

错误示例2

Mysql 开窗函数(窗口函数)_第7张图片

错误示例3

Mysql 开窗函数(窗口函数)_第8张图片

你可能感兴趣的:(Mysql,mysql,数据库)