维度表,桥表和事实表联接

问题描述

我总共有四个表: 尺寸表-书籍和作者 过渡表-书/作者 交易事实

由于书籍有多位作者,一位作者有多本书,因此使用桥表来解决多对多关系

表结构如下:

Dim_Books:

book_id (PK) 
ISBN 
Title 

昏暗的作者:

Author_id (PK)
FName
LName

Book_auth_bridge:

book_auth_id (PK)
book_id
auth_id

事实销售:

Sale_amount
quantity
Book_id
book_auth_id

我正尝试从事实表中检索作者的总销售额,因为我正在与过渡表联接,所以我总是从内部联接中获取多行,并且重复的次数也是如此。

如何编写sql以获得作者的总销售额?

解决方法

最灵活的解决方案是在桥接表中包括一个“分配因子”列,并将其与您的度量相乘以得到所需的比例。

例如,如果您想在3个人之间平均分配,那么所有3个桥接表记录中的系数都是0.333。但是,如果您想将50%分配给主要作者,然后将剩余部分与其他作者平均分配,则系数将分别为0.5、0.25和0.25