窗口函数的使用

1.概述

    语法:

window_function (expression) OVER (
   [ PARTITION BY part_list ]
   [ ORDER BY order_list ]
   [ { ROWS | RANGE } BETWEEN frame_start AND frame_end ] )

   window_function(expression) 可以是下面的函数:

  • Aggregate Functions: 常用聚合函数,比如:count(*)、sum(...)、min(...)、avg(...) 等

  • Sort Functions: 数据排序函数, 比如 :dense_rank()、rank(...)、row_number(...)等

  • Analytics Functions: 取值函数, 比如:lead(...)、lag(...)、 first_value(...)等

     具体还要结合实际情况使用。

注意:  

1. 窗口子句必须和order by 子句同时使用,且如果指定了order by 子句未指定窗口子句,则默认为RANGE BETWEEN unbounded preceding AND CURRENT ROW    (有order by  作用域:第一行~当前行,如果order by这个字段的值相同,那汇总值也是相同的)

2. 当ORDER BY和窗口从句都缺失,窗口规范默认是:ROW BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING (无order by 作用域:整个partition下)

注:默认框架为 range B

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值