【发布时间】:2016-10-28 17:19:15
【问题描述】:
我正在使用 Teradata 中的 SQL 研究客户及其购物习惯。
假设我有以下信息:
Table wklytrans
CustNm GroceryStore # WklyTrxns Sum WklyTrxns CustType
Jack Publix 2 $70 Publix
Ruby Kroger 1 $15 Both
Moe Kroger 4 $120 Kroger
Ruby Publix 1 $20 Both
我想创建一个新表,将它们分类如下:
CustNm CustType # PubTrxns Sum PubTrxns # KroTrxns Sum KroTrxns
Jack Publix 2 $70 NULL NULL
Ruby Both 1 $20 1 $15
Moe Kroger NULL NULL 4 $120
我目前尝试运行的代码如下:
CREATE MULTISET VOLATILE TABLE custclass AS(
SEL
CustNm,
CustType,
CASE WHEN CustType IN 'Both' AND GroceryStore IN 'Publix' THEN # WklyTrxns
WHEN CustType IN 'Publix' THEN # WklyTrxns
END AS # PubTrxns,
CASE WHEN CustType IN 'Both' AND GroceryStore IN 'Publix' THEN Sum WklyTrxns
WHEN CustType IN 'Publix' THEN Sum WklyTrxns
END AS Sum PubTrxns,
CASE WHEN CustType IN 'Both' AND GroceryStore IN 'Kroger' THEN # WklyTrxns
WHEN CustType IN 'Kroger' THEN # WklyTrxns
END AS # KroTrxns,
CASE WHEN CustType IN 'Both' AND GroceryStore IN 'Kroger' THEN Sum WklyTrxns
WHEN CustType IN 'Kroger' THEN Sum WklyTrxns
END AS Sum KroTrxns
FROM wklytrans
)
WITH DATA
PRIMARY INDEX (CustNm)
ON COMMIT PRESERVE ROWS;
这是当前正在输出的内容:
CustNm CustType # PubTrxns Sum PubTrxns # KroTrxns Sum KroTrxns
Jack Publix 2 $70 NULL NULL
Ruby Both 1 $20 NULL NULL
Ruby Both NULL NULL 1 $15
Moe Kroger NULL NULL 4 $120
如何让我的代码将 Ruby 的事务合并到同一行,使其看起来像我想要的输出?
感谢任何帮助!
【问题讨论】: