问题描述
我正在查看将导入 Power BI 的 Excel 文件。由于工作原因,我无法访问数据库本身,所以他们给了我一个 Excel 文件供我使用,然后我将上传到 Power BI。
在其中一个事实“表”上,它们的数据看起来像这样
s-ID success% late% on-time% schedule
1 10% 2% 5% calculus-1;algebra-2
1 5% 10% 27% Calculus-1
1 5% 3% 80% algebra-2
2 33% 50% 3% null
5 5% 34% 8% English-1;English-10;theatre;art
我意识到这些数字没有任何意义,但这基本上是数据结构明智的方式。这个事实“表”中也有大约 100,000 条记录。
我有一个课程维度,但我不知道如何处理这个时间表列。如果我垂直拆分列,则度量列将被重复计算。
如何在 Power-BI 中对此进行建模并将计划智能地放入维度中?
我的目标是将数据建模如下:
-
能够将计划拆分为单独的行,但不会同时重复计算所有值。
-
我还想证明 s-ID 记录让学生参加了 包含微积分 1 和代数的类。
有时,教授在谈论适用于两者的主题时,会将 2 节课一起安排为 1 节课。可以有 2 个班级,也可以有多达 8 个班级,或者介于两者之间。
这是适合使用桥接表的场景吗?
解决方法
您可以使用 bridge table。在经典的维度模式中,附加到事实表的每个维度都有一个与事实表的粒度一致的值。但是在许多情况下,维度是合法的多值。就像你的例子一样,一个学生可以注册很多课程: