SQL学习——窗口函数

  • Post author:
  • Post category:其他



1.窗口函数

窗口函数:应用在窗口的函数,限定一个空间范围

窗口:记录集合,满足某种条件的记录集合上执行的特殊函数

基本用法:

函数名([expr]) over 子句

函数() over()

over用于指定窗口的执行范围,包含三个分析子句

函数名([expr])over(partition by <要分组的列>) order by <要排序的列> rows between<数据范围>)

rows between 2 preceding and current row #取当前行和前面两行

rows between unbounded preceding and current row #包括本行和之前所有的行

rows between current row and unbounded following #包括本行和之后的所有行

rows between 3 preceding and 1 following #从前面三行和下面一行,总共五行

#order by 后面缺少窗口从句条件,窗口默认规范是rows between unbounded preceding and current row.  当前行和之前

#当order by 和窗口从句都缺失,窗口规范默认是rows between unbounded preceding and unbounded following  所有的数据


2.排序函数

row_number():序号不重复,序号连续

rank():序号可以重复,序号不连续

dense_rank():序号可以重复,序号连续


3.聚合函数实现滑动窗口计算



4.lag、lead函数求增长率(环比、同比)




5.top10%的商品



版权声明:本文为Yunsen01原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。