【发布时间】:2020-08-20 00:11:31
【问题描述】:
我总共有四张桌子: 维度表 - 书籍和作者 桥表书/作者 交易事实
由于书籍有多个作者,一个作者有多个书籍,因此使用桥接表来解决多对多关系
表结构如下:
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
我正在尝试从事实表中检索作者的总销售额,因为我正在加入桥接表,所以我总是从内部连接中获得多行并且数量是重复的。
如何编写 SQL 来获取作者的总销售额?
【问题讨论】:
-
(1) 请告诉我们您当前的查询 (2) 为什么
fact_sales中有book_auth_id? -
请发布您的查询。如果你有一本售价 99 美元的书,其中有三位作者,我猜你希望每个作者都能拿到 33 美元?
-
(1) 当前查询:select sum(f.sale_amount),a.author_id from fact_sales f ,book_auth_bridge br ,dim_author a where a.author_id = br.author_id and br.book_auth_id = f.book_auth_id group by a.author_id (2) 现有报告的事实表结构需要相同。添加桥接表列不会影响现有报表
-
尼克的答案是肯定的,我需要为每个作者分配
标签: oracle data-warehouse