Teradata的OLAP函数使用(2)

3,累计函数

SELECT 
    storeid
    ,prodid
    ,sales
    ,SUM(sales) OVER (ORDER BY sales DESC ROWS UNBOUNDED PRECEDING) 
FROM salestbl ;

 结果如下:

storeid    prodid       sales       	    Cumulative Sum(sales)
-------   -------           -------            ----------------------
1001 	F               150000.00              150000.00
1001 	A               100000.00 	250000.00
1003 	B	  65000.00 	315000.00
1001 	C	  60000.00 	375000.00
1003 	D	  50000.00 	425000.00
1002 	A	  40000.00 	465000.00
1001 	D	  35000.00 	500000.00
1002 	C	  35000.00 	535000.00
1003 	A	  30000.00 	565000.00
1002 	D	  25000.00 	590000.00
1003 	C	  20000.00 	610000.00

 ORDER BY :排序

ROWS        :记录数(这里大都使用between and)

UNBOUNDED PRECEDING :当前记录前不限制,表示需要取上这些记录。

4,位移聚合(不一定翻译的对)

SELECT 
    storeid
    ,prodid
    ,sales
    ,SUM(sales) OVER (ORDER BY sales DESC ROWS 2 PRECEDING) 
FROM  salestbl;

 结果如下:

               storeid                   prodid             sales 	                                          Moving Sum(sales)
              -----------                ---------- 	-------------- 	                        ---------------------------
	1001 		F 	150000.00 			150000.00
	1001 		A 	100000.00 			250000.00
	1003 		B 	  65000.00 			315000.00
	1001 		C 	  60000.00 			225000.00
	1003 		D 	  50000.00 			175000.00
	1002 		A 	  40000.00 			150000.00
	1001 		D 	  35000.00 			125000.00
	1002 		C 	  35000.00 			110000.00
	1003 		A 	  30000.00 			100000.00
	1002 		D 	  25000.00 			  90000.00
	1003 		C 	  20000.00 			  75000.00

 2 PRECEDING:表示要计算在该记录前的两条记录。实现了一种移动聚合的感觉

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值