我有
维度表
item (item_id,name,category)
Store(store_id,location,region,city)
Date(date_id,day,month,quarter)
customer(customer_id,name,address,member_card)
事实表
Sales(item_id,store_id,date_id,customer_id,unit_sold,cost)
我的问题是,如果我想查找一个月的某个位置的平均销售额我是否应该在fact table中添加average_sales列,如果我想查找使用会员卡完成的销售,我应该在事实表中添加相应的字段吗?
到目前为止我的理解只是可数量的措施实际上应该是表格,所以我认为membership_卡不应该是实际上的表格。
如果我错了,请告诉我。
答案 0 :(得分:0)
不,您不应该将平均销售列添加到您的事实表中,它是一个计算值,并且与事实表不是“粒度”。
您的销售事实表应该尽可能精细,因此它应该是sales_order_line_items,每个销售订单行项目一行。
您想要计算给定月份给定商店的平均销售额......?
首先,“销售”是指“收入”(总计美元)还是“销售数量”?
平均每日收入?
每月平均月收入?
如果您有商店ID,日期,销售数量(每个订单项)和单价,那么很容易弄明白。
答案 1 :(得分:0)
您不应在同一事实表中添加聚合列。事实表中的措施应该是相同的。因此,如果您需要聚合度量标准,请在所需的粒度下构建单独的事实表。
因此,我可能有一个名为F_LOC_MON_AGG的事实聚合表,其中包含在位置和月份级别聚合的度量。
如果您没有聚合表,OBIEE等现代商业智能工具可以在运行时进行聚合。
维杰