欢迎投稿

今日深度:

greenplum:实现TeraData中的CSUM,teradatacsum

greenplum:实现TeraData中的CSUM,teradatacsum


greenplum中实现teradata同样的sql时常常会遇到csum不存在的问题,本文提供一个解法。

 

一、不带group by

Teradata中执行

1 2 3 4 SELECT salesdate, sales, csum(sales, salesdate) FROM daily_sales WHERE salesdate BETWEEN 980101 AND 980301 AND itemid = 10;

结果

1 2 3 4 5 6 salesdate     sales       Csum 98/01/01     150.00         150.00 98/01/02     200.00         350.00 98/01/03     250.00         600.00 98/01/05     350.00         950.00 98/01/10     550.00        1500.00

在greenplum实现csum(sales, salesdate)可替换为

1 SUM(sales) over(ORDER BY salesdate ASC)

 

二、带group by

Teradata中执行

1 2 3 4 5 6 7 SELECT salesdate, sales, csum(sales, salesdate) FROM daily_sales ds, sys_calendar.calendar sc WHERE ds.salesdate = sc.calendar_date AND sc.year_of_calendar = 1998 AND sc.month_of_year in (1,2) AND ds.itemid = 10 GROUP BY sc.month_of_year;

结果

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 salesdate sales Csum 98/01/01 150.00 150.00 98/01/02 200.00 350.00 98/01/03 250.00 600.00 98/01/05 350.00 950.00 98/01/10 550.00 1500.00 98/01/21 150.00 1650.00 98/01/25 200.00 1850.00 98/01/31 100.00 1950.00 98/02/01  150.00 150.00   重新累计 98/02/03 250.00 400.00 98/02/06 350.00 750.00 98/02/17 550.00 1300.00 98/02/20 450.00 1750.00 98/02/27 350.00 2100.00

在greenplum实现csum(sales, salesdate)可替换为

1 SUM(sales) over(PARTITION BY sc.month_of_year ORDER BY salesdate ASC)



 本文转自 hexiaini235 51CTO博客,原文链接:http://blog.51cto.com/idata/1259498,如需转载请自行联系原作者

www.htsjk.Com true http://www.htsjk.com/teradata/11116.html NewsArticle greenplum:实现TeraData中的CSUM,teradatacsum greenplum中实现teradata同样的sql时常常会遇到csum不存在的问题,本文提供一个解法。   一、不带group by Teradata中执行 1234 SELECT   salesdate, sales, csum(...
评论暂时关闭