Teradata SQL MAX函数和重复行

Teradata SQL MAX函数和重复行,sql,max,teradata,Sql,Max,Teradata,我的原始报告返回帐户ABC的3条记录,1条为已批准状态,2条为已暂停状态。这些行的唯一区别是状态和账单号。所有其他数据都是相同的 我正在尝试创建此报告的一个变体,该变体将为帐户ABC返回一行,其中一列显示已批准帐户的计数,另一列显示已暂停帐户的计数 在新报告中,将有一个值为1的Approved Accounts列和一个值为2的Suspended Accounts列 我使用MAX函数只返回一行。我遇到的问题是,除了账单号码之外,有两条状态为“暂停”的记录是相同的 如果我从SQL中删除帐单号码,那么

我的原始报告返回帐户ABC的3条记录,1条为已批准状态,2条为已暂停状态。这些行的唯一区别是状态和账单号。所有其他数据都是相同的

我正在尝试创建此报告的一个变体,该变体将为帐户ABC返回一行,其中一列显示已批准帐户的计数,另一列显示已暂停帐户的计数

在新报告中,将有一个值为1的Approved Accounts列和一个值为2的Suspended Accounts列

我使用MAX函数只返回一行。我遇到的问题是,除了账单号码之外,有两条状态为“暂停”的记录是相同的

如果我从SQL中删除帐单号码,那么结果只返回1个已暂停帐户和1个已批准帐户。我需要SQL返回1行,其中1在approved列中,2在suspended列中

以下是一些示例数据:

Acct#    Bill#    Name    Location   Status  
ABC      Bill1    ABC Co   123456   Approved
ABC      Bill2    ABC Co   123456   Suspended
ABC      Bill3    ABC Co   123456   Suspended
如有任何建议,将不胜感激。感谢您的帮助……

您需要“条件聚合”:

您需要“条件聚合”:

select Acct#, Name, Location, 
   sum(case when Status = 'Approved' then 1 else 0 end) as Approved,
   sum(case when Status = 'Suspended' then 1 else 0 end) as Suspended
from ...
group by 1,2,3