SQL 服务器数据透视 + 求和 + 分组依据

SQL server pivot + sum + group by

我有如下数据,我需要对总和枢轴进行分组

AA BB date
a 1 01/01/2020
a 2 01/01/2020
b 5 01/01/2020
b 1 01/01/2020
c 5 01/01/2020
d 1 01/01/2020
d 8 02/01/2020
e 1 01/01/2020

我用 sql 代码获得了什么

a b c d e
01/01/2020 3 6 5 1 1
02/01/2020 / / / 8 /

我需要得到什么:a和d分组为f和c,e分组为g和b分开

b f g
01/01/2020 6 4 6
02/01/2020 / 8 /

我得到了以下 sql 但我似乎无法进行分组求和。你是在旋转之前还是之后做?

SELECT * FROM(
SELECT AA,Date
FROM [dbo].[Data] )
AS SourceTable 
PIVOT(SUM([BB]) 
FOR [AA] IN([a],[b],[c],[d],[e])) 
AS PivotTable 

如果我尝试这个它不起作用

SELECT * FROM(
SELECT AA,Date
FROM [dbo].[Data] )
AS SourceTable 
PIVOT(SUM([BB]) 
FOR [AA] IN([a]+[d],[b],[c]+[e])) 
AS PivotTable 

我发现使用条件聚合更简单:

select 
    date,
    sum(case when d.aa = 'b'         then bb else 0 end) as b,
    sum(case when d.aa in ('a', 'd') then bb else 0 end) as f,
    sum(case when d.aa in ('c', 'e') then bb else 0 end) as g
from data d
group by date

按如下方式使用条件聚合:

select sum(case when aa in ('a','d') then BB  end) as f,
       sum(case when aa in ('c','e') then BB  end) as g,
       sum(case when aa = 'b' then BB  end) as b
  from table_name
group by date