Sql 返回每列中的第一个非空值
我希望从一个表中创建一个按天和客户ID的摘要/汇总表(该表当前正在从多个来源更新) 对于每个客户ID和交易日期,我希望在该列中获得该组合的最小值、最大值、总和或第一个非空值。我对min、max和sum没有问题,但是我想知道如何最好地处理列中的第一个非空值 我的表的外观示例:Sql 返回每列中的第一个非空值,sql,null,ignore,Sql,Null,Ignore,我希望从一个表中创建一个按天和客户ID的摘要/汇总表(该表当前正在从多个来源更新) 对于每个客户ID和交易日期,我希望在该列中获得该组合的最小值、最大值、总和或第一个非空值。我对min、max和sum没有问题,但是我想知道如何最好地处理列中的第一个非空值 我的表的外观示例: Cust ID Trans Date Housing Housing $ Retail Retail $ Arrival 123 1/1/2019 test1 $500
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;
SQL表表示无序集。列中没有“第一个值”-NULL或其他形式--除非列指定了顺序
但是,对于结果集,简单的聚合似乎就足够了:
select CustID, TransDate, max(Housing), max(Housing$), max(Retail), max(Retail$), max(Arrival)
from t
group by CustID, TransDate;