窗口分析

   日期:2024-12-27    作者:yaluyien 移动:http://ljhr2012.riyuangf.com/mobile/quote/68598.html

窗口函数——聚合「summaxminavg」

以SUM为例子(max、min、avg同理

窗口分析

sum(求和字段) over (partition by 分组字段 order by 排序字段 rows between unbounded preceding and current row) as pv1

关键字说明如果不指定 rows between默认为从起点到当前行;如果不指定 order by则将分组内所有值累加;

关键是理解ROWS BETWEEN含义,也叫做WINDOW子句

关键字说明preceding:往前3 preceding(前三行following:往后1 following(后一行)current row:当前行current row(当前行
关键字说明unbounded preceding.(表示从前面的起点)unbounded following.(表示到后面的终点)

窗口帧

作用是用于调整窗口大小

(ROWS | RANGE) BETWEEN (UNBOUNDED | [num]) PRECEDING AND ( CURRENT ROW )| (UNBOUNDED | [num]) FOLLOWING)

UNBOUNDED :表示没有限制

num:具体行值或数据值

PRECEDING: 往前取

CURRENT ROW : 表示当前行

FOLLOWING:往后取值

 
 

窗口取行

  • lag/lead

LAG(col,n,default):往前第n行数据,default如果参数不给,那么默认返回NULL
LEAD(col,n,default):往后第n行数据

  • FIRST_VALUE /LAST_VALUE

FIRST_VALUE:取分组内排序后,截止到当前行,第一个值
LAST_VALUE:取分组内排序后,截止到当前行,最后一个值,对于并列的排名,取最后一个

非常重要

排名函数

  • row_number函数
  • rank/dense_rank
  • percent_rank/ cume_dist/NTILE

– 三者的不同点
① row_number() 排名连续 不重复
② dense_rank() 排名连续 且重复
③ rank() 排名不连续 且重复


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号