KDT#11 在有缓慢变化维的维度表中统计个数
对于有丰富的描述属性的维度表,我们经常会对其统计个数,例如客户表,我们会按各种口径(支付类型、所在地区、性别等)统计其个数。如果是静态的维度表,统计个数是件非常简单的事情,如果是有缓慢变化维的维度表,统计个数时就需要多加小心。
在有缓慢变化维的维度表中统计个数,不加小心的话容易统计重复。因为,以客户维度表为例,我们会对同一个客户的不同历史信息保存多条记录。
对于统计当前各口径的客户数来说,如果我们很好的维护的维度表的自然键,那么可以对维度表的自然键进行DISTINCT操作。或者,我们也可以在维度表的记录上作“当前行”的标识,通过“当前行”的标识可以统计当前的各口径客户数。
对于要统计历史上某时点的客户数的问题,我们可以采用维度表中的开始日期和终止日期来进行过滤,如,Row_Begin_Date <= '2006-6-27' AND Row_End_Date >= '2006-6-27'。这样的统计方法中,统计的是在'2006-6-27'时生效的维度记录。