关于重复数据,我们有一个有趣的问题。我们的源文件可以包含针对单个员工福利的多行数据。例如,医疗保健福利可以拆分并报告为 3 行(3 只是一个示例 - 可能更多)。
数据已毫无问题地加载到暂存中,并且将包含单个和多个收益行的混合。到目前为止,我所做的是执行聚合以找到具有多个福利的标识(聚合在 employeeid 和 benefitid 上),如果它 > 1,则将其移至单独的暂存表。
我现在需要做的是分析具有多个福利的临时表,并根据 employeeid 和 benefitid 聚合数据。假设一个收益有 3 行。
employeeid 和 benefitid 将是识别这些行的关键。其他行可能包括福利提供者、年度成本、合格和福利名称(还有更多,但这些涵盖了输出单行所需的 4 种聚合类型)。
- 如果 3 的列表中有多个提供者,我们应该将该值设置为“多个”,否则它应该是不同的值
- 年度成本很简单...所有 3 行的总和
- 如果任何活动标志为真,则将值设置为真(1 可能为真,2 可能为假)
- 如果有多个福利名称,我们只选择第一个非空值。
数据聚合后(3 行合并为 1,应用上述规则),然后将其与单行收益表合并。
由于您使用的是 2012+,因此您可以使用窗口功能,我认为这更容易解决。
这是我的设置。
然后我会查看类似这样的查询
挑选查询的一些技巧