Sql 将快照数据转换为历史数据
我目前正在开发一个数据仓库,并从源系统迁移数据,该源系统每天都会对事务数据库进行快照,而不管是否有更改。如您所料,这张表多年来变得非常大(约1亿行),看起来像这样 所需的表应该如下所示Sql 将快照数据转换为历史数据,sql,sql-server,tsql,Sql,Sql Server,Tsql,我目前正在开发一个数据仓库,并从源系统迁移数据,该源系统每天都会对事务数据库进行快照,而不管是否有更改。如您所料,这张表多年来变得非常大(约1亿行),看起来像这样 所需的表应该如下所示 似乎您只需要通过聚合进行分组: select branchcode, productcode, min(fromsalesdate), max(tosalesdate), qtysold, amount from table t group by branchcode, productcode, qtysold
似乎您只需要通过聚合进行分组:
select branchcode, productcode, min(fromsalesdate), max(tosalesdate), qtysold, amount
from table t
group by branchcode, productcode, qtysold, amount;
如果没有google Gaps和Islands的示例数据,文本(而不是图像)的示例数据将更有帮助。一个简单的分组将无法做到这一点。它可能会产生重叠。这更像是一个缺口和孤岛问题