维度 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

的因子