我希望按日常创建摘要/汇总,并从表中创建客户ID(当前表正在从多个来源进行更新(。
对于每个客户ID和交易日期,我要么希望在该列中获得最小值,最大,总和或第一个非零值。我对Min,Max和Sum没有问题,但是正在寻找有关如何最好地处理列中第一个非零值的建议。
样本我的桌子的样子:
Cust ID Trans Date Housing Housing $ Retail Retail $ Arrival
123 1/1/2019 test1 $500.00 NULL NULL 1/1/2019
123 1/1/2019 NULL NULL product1 $15.00 NULL
1235 5/10/2019 test2 $1,000.00 NULL NULL 5/10/2019
1234 10/15/2019 test2 $1,000.00 NULL NULL 10/15/2019
1234 10/15/2019 NULL NULL product2 $25.00 NULL
我正在寻找的结果:
123 1/1/2019 test1 $500.00 product1 $15.00 1/1/2019
1235 5/10/2019 test2 $1,000.00 NULL NULL 5/10/2019
1234 10/15/2019 test2 $1,000.00 product2 $25.00 10/15/2019
sql表代表无序集。列中没有"第一值" - NULL
或其他 - 除非列指定订购。
但是,对于您的结果集,简单的聚合似乎足够:
select CustID, TransDate, max(Housing), max(Housing$), max(Retail), max(Retail$), max(Arrival)
from t
group by CustID, TransDate;