【发布时间】:2018-05-10 11:21:26
【问题描述】:
尝试将 Teradata bteq SQL 脚本转换为 redshift SQL。我目前的 redshift Postgres 版本是 8.0.2,redshift 版本是 1.0.1499。当前版本的 redshift 不支持 rollup()、grouping() 函数。如何克服和解决这种情况。它们的等效红移函数是什么?谁能用一些例子解释一下怎么做?
Teradata SQL 示例-
select
PRODUCT_ID,CUST_ID,
GROUPING (PRODUCT_ID),
GROUPING (CUST_ID),
row_number over (order by PRODUCT_ID,CUST_ID) AS "ROW_OUTPUT_NUM"
from products
group by rollup(PRODUCT_ID,CUST_ID);
需要将上面的sql查询转换成Redshift
【问题讨论】:
-
请提供一些示例 teradata sql 以及您迄今为止在 redshift 中尝试过的内容,
-
@JonScott 尝试将简单的 Rollup() 和 grouping() 函数转换为 Redshift,但没有成功。
-
要在 redshift 或任何不支持汇总的数据库中执行此操作,您需要单独运行每个组,然后合并结果。这可以使用 cte 在 1 次选择中完成
-
你能帮我举一个上面的 Sql 查询的例子吗
-
我用下面的link写了SQL Rollup,Redshift中的分组查询。它奏效了。
标签: sql group-by amazon-redshift rollup