我在尝试进行多维数据库设计时遇到了这个问题。基本上,我有一个事实表(sale_fact),其中包含一个代理键、几个外键(产品 ID 的 pid、国家 ID 和日期的 cid)和销售数据。粒度或这个事实表是按天计算的。如何根据这些外键的不同组合汇总几周(或几个月)的销售数据?例如,我想总结产品 1 在国家 1 本周的销售数据(pid = 1 和 cid = 1 和日期 = 星期一),产品 2 在国家 2 的销售数据在同一周(pid = 2 和cid = 2 和日期 = 星期一)。如何在一个 SQL 中获取这些数据?示例结果集如下所示:
| id | pid | cid | date | total |
| 1 | 1 | 1 | 2013-11-04 | 100 |
| 2 | 1 | 2 | 2013-11-04 | 90 |
| 3 | 1 | 3 | 2013-11-04 | 80 |
| 4 | 2 | 1 | 2013-11-04 | 91 |
......more data