RDBMS 中的动态频带
我们的挑战是重现以下示例 (RDBMS),但要利用 Microsoft SSAS 表格模型。我们在一列中有值,我们需要对它们进行分组,所以实际上我们有带分数的学生(在特定范围内的任何值,例如 0 到 100),我们需要将这些分数分组到波段/范围中并在图表上提供分布允许用户解决它们。
但是有一个转折点,我们需要提供许多条带,因此标记表中的一个附加列不会削减它,并且客户希望将来能够添加更多条带,因此显然添加列不是要走的路。
在下面的内置 RDBMS 示例中,我们定义了 3 个不同的波段: - 5-Band - BiBand - Tri-Band 但是我们可以根据需要在不同的范围内添加任意数量的波段,因为这是另一个要求,我们需要提供波段用于 0-100 之间的值,但也可以是 0-4 以及将来可能的其他值。
在了解 DB Schema 的详细信息之前,我想我会首先公开我将在传统 RDBMS 中使用的 SQL,它是:
select studentid, StudentMark, BandRangeName
from StudentMark, Band, BandRange
where Band.BandName = '5-Band' # This is where we would filter at report level
and Studentmark Between BandRange.BandLowRange and BandRange.BandHighRange
and Band.BandID = BandRange.BandID
所以我们需要用户做的就是选择乐队(上面的“5-Band”),他们想为那个特定的报告工作。
以下是基于在报告级别选择的波段的结果:
5-Band BiBand Tri-Band
1 10 Very Low
2 11 Very Low
3 13 Very Low
4 20 Very Low
5 25 Low
6 35 Low
7 40 Low
8 44 Medium
9 50 Medium
10 60 Medium
11 67 High
12 70 High
13 75 High
14 80 High
15 90 Very High
Student Mark Band
1 10 Low
2 11 Low
3 13 Low
4 20 Low
5 25 Low
6 35 Low
7 40 Low
8 44 Low
9 50 Low
10 60 High
11 67 High
12 70 High
13 75 High
14 80 High
15 90 High
1 10 Low
2 11 Low
3 13 Low
4 20 Low
5 25 Low
6 35 Medium
7 40 Medium
8 44 Medium
9 50 Medium
10 60 Medium
11 67 High
12 70 High
13 75 High
14 80 High
15 90 High
RDBMS Schema - 物理波段表
BandID BandName
1 TriBand
2 Bi-Band
3 5-Band
3 defined, but can define as many as required.
- 物理波段范围表
BandID BandNumber BandRangeName BandLowRange BandHighRange
1 1 Low 0 30
1 2 Medium 31 60
1 3 High 61 100
2 1 Low 0 50
2 2 High 51 100
3 1 Very Low 0 20
3 2 Low 21 40
3 3 Medium 41 60
3 4 High 61 80
3 5 Very High 81 100
- 最后是过于简单的 StudentMark 表
StudentID StudentMark
1 10
2 11
3 13
4 20
5 25
6 35
7 40
8 44
9 50
10 60
11 67
12 70
13 75
14 80
15 90