greenplum:实现TeraData中的CSUM

简介:

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,如需转载请自行联系原作者

相关文章
|
10月前
GreenPlum on K8s
GreenPlum on K8s
139 0
|
11月前
|
存储 SQL 分布式计算
GreenPlum小结
GreenPlum小结
245 0
|
12月前
|
SQL JSON 缓存
「云数据仓库架构」Redshift,Snowflake,Azure,Presto和BigQuery
「云数据仓库架构」Redshift,Snowflake,Azure,Presto和BigQuery
|
存储 SQL 大数据
中国 Vertica
Vertica:洞察数据,优势不凡
|
关系型数据库 大数据 OLAP
新一代HTAP数仓,AnalyticDB for PostgreSQL 6.0版正式商业化!
本文作者:陆封,阿里云数据库资深技术专家
1672 0
新一代HTAP数仓,AnalyticDB for PostgreSQL 6.0版正式商业化!
|
存储 SQL Oracle
如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL
阿里云AnalyticDB for PosgreSQL与 AWS Redshift 均为采用PosgreSQL内核的MPP架构数据仓库服务,语法高度兼容一致。本文介绍两者的差异比较,以及如何从AWS Redshift迁移应用和数据到阿里云 ADB for PG。
4933 0
如何将数据仓库从 AWS Redshift 迁移到阿里云 AnalyticDB for PostgreSQL
|
SQL 关系型数据库 数据库
如何将Teradata应用迁移至AnalyticDB for PostgreSQL
AnalyticDB for PostgreSQL(简称:ADB for PG)对Teradata语法有着很好的兼容,将Teradata应用迁移到ADB for PG,只需进行有限的修改。本文介绍将Teradata应用迁移到ADB for PG应该注意的事项。
10173 0
如何将Teradata应用迁移至AnalyticDB for PostgreSQL
|
大数据 分布式数据库 数据库
Greenplum数据库,分布式数据库,大数据
greenplum使用场景,greenplum未来发展,分布式数据存储
1744 0