MYSQL - 窗口函数的使用

目录

1 窗口函数的含义 

2 over( )窗口函数的语法结构

3 常与over函数结合使用的函数

4 题目案例


1 窗口函数的含义 

 OVER (   

               [  PARTITION BY <列清单>  ]
                  ORDER BY
<排序用列清单>               )

  • 窗口函数也称为OLAP函数,用来指定函数执行的窗口范围
  • 若后面括号中什么都不写,则窗口函数基于所有行进行计算
  • 若指定了分区,则窗口函数的大小是针对每个分区的数据

2 over( )窗口函数的语法结构

over的括号包括三个函数:

3 常与over函数结合使用的函数

聚合类函数:

  • avg()
  • sum()
  • max()
  • min()

排名类函数:

  • rank()           按值排序时,产生自增的序号,值相等时重复,会产生空位
  • dense_rank()    按值排序时,产生自增的序号,值相等时重复,不会产生空位
  • row_number()   按值排序时,产生自增的序号,不会重复

4 题目案例

e.g. 数据源为衬衫表SHIRTABLE,根据不同的衬衫种类shirt_type,按销售单价shirt_price从低到高的顺序创建排序表

select shirt_name,shirt_type,shirt_price,
    rank()
    over( partition by shirt_type
          order by shirt_price   ) as ranking
from shirttable;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值