SQL5

**

Task05:SQL⾼级处理

**
5.1 窗⼝函数
通用形式:
<窗口函数> OVER ([PARTITION BY <列名>]
ORDER BY <排序用列名>)
窗⼝函数最关键的是搞明⽩关键字 PARTITON BY和ORDER BY的作⽤。 PARTITON BY 是⽤来分组,即选择要看哪个窗⼝,类似于GROUP BY ⼦句的分组功能,但是PARTITION BY ⼦句并不具备GROUP BY ⼦句的汇总功能,并不会改变原始表中记录的⾏数。 ORDER BY 是⽤来排序,即决定窗⼝内,是按那种规则(字段)来排序的。

5.2 窗⼝函数种类
⼤致来说,窗⼝函数可以分为两类。
⼀是 将SUM、MAX、MIN等聚合函数⽤在窗⼝函数中 ;
⼆是 RANK、DENSE_RANK等排序⽤的专⽤窗⼝函数。

5.3 窗⼝函数的的应⽤ -计算移动平均
在上⾯提到,聚合函数在窗⼝函数使⽤时,计算的是累积到当前⾏的所有的数据的聚合。 实际上,还可以指定更加详细的汇总范围。该汇总范围成为框架(frame)。

通用语法:
<窗口函数> OVER (ORDER BY <排序用列名>
ROWS n PRECEDING )
<窗口函数> OVER (ORDER BY <排序用列名>
ROWS BETWEEN n PRECEDING AND n FOLLOWING)

PRECEDING(“之前”), 将框架指定为 “截⽌到之前 n ⾏”,加上⾃身⾏ FOLLOWING(“之后”), 将框架指定为 “截⽌到之后 n ⾏”,加上⾃身⾏ BETWEEN 1 PRECEDING AND 1 FOLLOWING,将框架指定为 “之前1⾏” + “之后1⾏” + “⾃身”

窗⼝函数适⽤范围和注意事项:
 1)原则上,窗⼝函数只能在SELECT⼦句中使⽤。
 2)窗⼝函数OVER 中的ORDER BY ⼦句并不会影响最终结果的排序。其只是⽤来决定窗⼝函
数按何种顺序计算。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值