Sql 汇总共享公共值但具有唯一行标识符的多个事务
我目前正在处理一个数据集,该数据集有大量的唯一组,每个组中可能有一对多的唯一行,用于描述适用于该组的事务类型。交易类型数量有限,每笔交易有一个(n):Sql 汇总共享公共值但具有唯一行标识符的多个事务,sql,sql-server-2008,group-by,Sql,Sql Server 2008,Group By,我目前正在处理一个数据集,该数据集有大量的唯一组,每个组中可能有一对多的唯一行,用于描述适用于该组的事务类型。交易类型数量有限,每笔交易有一个(n): 数量 位置 日期 数据集将如下所示: 我希望它将所有组合并到一行中,并为每种类型的事务设置三列。我试图让最终结果看起来像这样: 我得到的最接近的结果是,在寻找唯一密钥的同时,根据声明编号尝试大量连接。不幸的是,我的结果是这样的: 关于如何使每个唯一组在结果中只有一行、三种类型分散、每种类型有三列的建议?您可以通过条件聚合来完成这一切:
- 数量
- 位置
- 日期
关于如何使每个唯一组在结果中只有一行、三种类型分散、每种类型有三列的建议?您可以通过条件聚合来完成这一切:
select grp,
sum(case when type = 'S' then amount else null end) as type_s_amt,
min(case when type = 'S' then location else null end) as type_s_loc,
min(case when type = 'S' then date else null end) as type_s_dt,
sum(case when type = 'O' then amount else null end) as type_o_amt,
min(case when type = 'O' then location else null end) as type_o_loc,
min(case when type = 'O' then date else null end) as type_o_dt,
sum(case when type = 'F' then amount else null end) as type_f_amt,
min(case when type = 'F' then location else null end) as type_f_loc,
min(case when type = 'F' then date else null end) as type_f_dt
from tbl
group by grp
小提琴:这正是我需要的-谢谢!现在,要了解更多关于条件聚合的信息。。。