【问题标题】:Populating fact table填充事实表
【发布时间】:2017-01-29 20:08:38
【问题描述】:

我有一个销售数据仓库,它有 3 个维度 [产品、时间、商店] 和一个事实表 [sales_fact]。

“sales_fact”表的主键由维度表的所有主键组成,维度表现在都是手动填写的我想用存储在某个城市的特定产品价格的总和来填充“sales_fact”表一个月或三个月。

我应该如何从产品表中汇总与特定月份相关的价格并将其添加到事实表中?

【问题讨论】:

  • FACT 表的粒度是多少?如果您在交易级别存储销售信息,通常 SUM() 会在查询期间完成
  • 应该有一个系统,您可以从中获得销售额。使用在该系统中应用的价格,并乘以该系统中特定月份的销售数量。您在源系统上的查询可能会有一个按月分组的子句,让您可以求和。

标签: sql dimension fact warehouse


【解决方案1】:

考虑到汇总与特定月份相关的产品表中的价格 是一种度量,您的查询可能如下所示:

SELECT DS.City, DT.[Month], SUM(DP.Price)FROM
SalesFact AS S 
LEFT JOIN DimProduct AS DP ON DP.ProductSK=S.ProductSK
LEFT JOIN DimTime AS DT ON DT.DateSK=S.DateSK
LEFT JOIN DimStore AS DS ON DS.StoreSK=S.StoreSK
WHERE [Date condition] --Add your date conditoon
GROUP BY DS.City, DT.[Month]

您可以使用view 进行此度量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多