维度 table、桥梁 table 和事实 table 加入
Dimension table, bridge table and fact table join
我总共有四个 table:
维度 tables- 书籍和作者
桥 table- book/author
交易事实
由于书籍有多个作者,一个作者有多个书籍,为了解决多对多关系,使用了一个桥 table
表结构如下:
Dim_Books:
book_id (PK)
ISBN
Title
昏暗的作者:
Author_id (PK)
FName
LName
Book_auth_bridge:
book_auth_id (PK)
book_id
auth_id
Fact_Sales:
Sale_amount
quantity
Book_id
book_auth_id
我正在尝试从事实 table 中检索作者的总销售额,因为我正在连接桥 table,所以我总是从内部连接中获取多行并且数量是重复。
如何编写 SQL 以获得作者的总销售额?
最灵活的解决方案是在您的桥梁 table 中包含一个“分配系数”列,并将其与您的措施相乘以获得所需的比例。
例如,如果您想在 3 个人之间平均分配,那么所有 3 个桥接 table 记录中的系数为 0.333。但是,如果您想将 50% 分配给主要作者并将其余部分与其他作者平均分配,您将有 0.5、0.25 和 0.25
的因子
我总共有四个 table: 维度 tables- 书籍和作者 桥 table- book/author 交易事实
由于书籍有多个作者,一个作者有多个书籍,为了解决多对多关系,使用了一个桥 table
表结构如下:
Dim_Books:
book_id (PK)
ISBN
Title
昏暗的作者:
Author_id (PK)
FName
LName
Book_auth_bridge:
book_auth_id (PK)
book_id
auth_id
Fact_Sales:
Sale_amount
quantity
Book_id
book_auth_id
我正在尝试从事实 table 中检索作者的总销售额,因为我正在连接桥 table,所以我总是从内部连接中获取多行并且数量是重复。
如何编写 SQL 以获得作者的总销售额?
最灵活的解决方案是在您的桥梁 table 中包含一个“分配系数”列,并将其与您的措施相乘以获得所需的比例。
例如,如果您想在 3 个人之间平均分配,那么所有 3 个桥接 table 记录中的系数为 0.333。但是,如果您想将 50% 分配给主要作者并将其余部分与其他作者平均分配,您将有 0.5、0.25 和 0.25
的因子