ROWS Between

ROWS Between

表结构:

spu_id pt click_pv

商品ID 日期 点击量

1.对应5天后的click_pv 比如1号要6号的

select t.*,
       nvl(lead(click_pv, 4) over(partition by spu_id order by pt), 0) as lead5_pv
  from click t

2.后5天的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id order by pt rows between current row and 4 following) as sum5_pv
  from click t

 

3.求每个spu_id的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id) as sum_pv
  from click t

 

 

4.求每个spu_id,当前日期和之后所有日期的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id order by pt desc) as sum_pv1,
       sum(click_pv) over(partition by spu_id order by pt rows between current row and unbounded following) as sum_pv2
  from click t

 5.求每个spu_id,当前日期和之前所有日期的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id order by pt) as sum_pv1,
       sum(click_pv) over(partition by spu_id order by pt rows between unbounded preceding and current row) as sum_pv2
  from click t

 

6.求每个spu_id,当前日期和之前2天日期的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id order by pt rows between 2 preceding and current row) as sum_pv2
  from click t

7.求每个spu_id,当前日期和之后2天日期的click_pv之和 

select t.*,
       sum(click_pv) over(partition by spu_id order by pt rows between current row and 2 following) as sum_pv2
  from click t

8.求每个spu_id,之前2天和之后2天日期的click_pv之和

select t.*,
       sum(click_pv) over(partition by spu_id order by pt rows between 2 preceding and 2 following) as sum_pv2
  from click t

 

SUM() OVER()

中如果省略rows between,默认就是unbounded preceding and unbounded following

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值