Mysql聚合函数

什么是聚合函数?

聚合(或者聚集,分组)函数,它是对一组数据进行汇总的函数,输出的是一组数据的集合,输出的是单个值

聚合函数作用于一组数据,并对有一组数据返回一个值

聚合函数的类型:

·avg() //表示求函数的平均值

·sum() //求和

·max() //最大值

·mix() //最小值

·count() //统计个数

生成序号函数:

·rank() over()

·row_number over()

·dense_rank() over()

取值函数:

·lag() over()

·lead() over()

·over()指定窗口的关键字,默认窗口范围是全表,需要配合其他计算函数一起使用。

·over()中除了可以指定窗口,还可以指定窗口函数内的排序规则,一般配合生成序号函数一起使用。

聚合函数:

聚合函数语法:

select 字段,avg()/sum()/max() over() from 表

例子:

求年龄的平均值,

生成序号函数:

对表中的字段按照指定顺序记性排序然后生成序号

需要借助窗口函数实现

rank() over(order by 排序字段)

dense_rank() over(order by 排序字段)

row_number() over(order by 排序字段)

取值函数

基本用法
  • lead(字段) over()            //根据指定的字段向下一行取值

  • lag(字段) over()               //根据指定的字段向上一行取值

  • first_value(字段) over()    //根据指定的字段取第一行值

  • last_value(字段) over()   // 根据指定的字段取最后一行值

select *, lead(ename) over () as lead_data, lag(ename) over() as lag_data, first_value(ename) over () as first, last_value(ename) over () as last from employee;

指定取值范围,默认取值范围是全表

over(rows between ... and ... )

rows 指定行范围的关键字 between ...起始行 and ... 结束行 是以当前行为基准进行判断 unbounded preceding 向上无限制,以当前行为基准,向上找数据没有行数限制 2 preceding 向上两行 current row 代表当前行 以当前行为基准,向下查找数据到当前行结束 2 following 向下两行 以当前行为基准,向下查找两行数据 unbounded following 向下无限制

注意:

聚合函数只有在MySQL8.0以上的版本中方可使用。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值