窗口函数使用

叠加求和

作为窗口函数使用聚合函数

---oracle  sql server DB2

 

Select id ,name ,price,

Sum (price) over (order by id) as current_sum

From product;

 

执行结果:

id

name

price

Current_sum

计算

001

铅笔

1000

1000

--1000

002

钢笔

500

1500

--1000+500

003

橡皮

4000

5500

--1000+500+4000

004

3000

8500

--1000+500+4000+3000

 

使用avg函数求平均

Select id ,name ,price,

Avg (price) over (order by id) as current_avg

From product;

执行结果:

id

name

price

Current_sum

计算

001

铅笔

1000

1000

--1000/1

002

钢笔

500

750

--(1000+500)/2

003

橡皮

4000

1833.33

--(1000+500+4000)/3

004

3000

2125

--(1000+500+4000+3000)/4

 

 

计算移动平均(指定最靠近的3行作为汇总对象)

Select id ,name ,price,

Avg (price) over (order by id rows 2 preceding ) as current_avg

From product;

 

执行结果:

id

name

price

Current_sum

计算

001

铅笔

1000

1000

--1000/1

002

钢笔

500

750

--(1000+500)/2

003

橡皮

4000

1833.33

--(1000+500+4000)/3

004

3000

2500

--(500+4000+3000)/3

005

作业本

6800

4600

--(4000+3000+6800)/3

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值