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
8964

被折叠的 条评论
为什么被折叠?



