使用交叉表
交叉表是常见的表格类型,特点是在两个标题数据正交列表之间显示值矩阵。看上去会像以下表格。
示例 1:
Year | Jan | Feb | Mar | Apr | May | Jun |
---|---|---|---|---|---|---|
2008 | 45 | 65 | 78 | 12 | 78 | 22 |
2009 | 11 | 23 | 22 | 22 | 45 | 85 |
2010 | 65 | 56 | 22 | 79 | 12 | 56 |
2011 | 45 | 24 | 32 | 78 | 55 | 15 |
2012 | 45 | 56 | 35 | 78 | 68 | 82 |
如果此表格只是简单加载到 QlikView,结果将为Year使用一个字段,每个月份各一字段。通常,这并非您希望看到的结果。您可能更希望生成三个字段:一个用于每一标题类别(Year和Month),一个用于矩阵内的数据值。
通过将 crosstable 前缀添加到 LOAD 或 SELECT 语句可实现此操作。
crosstable (Month, Sales) LOAD * from ex1.xlsx;
这可以在 QlikView 中创建下列结果:
交叉表通常位于许多限定列之后,这些列将被直接读取。在此例中,将会出现一个限定列,即Year:
示例 2:
Salesman | Year | Jan | Feb | Mar | Apr | May | Jun |
---|---|---|---|---|---|---|---|
A | 2008 | 45 | 65 | 78 | 12 | 78 | 22 |
A | 2009 | 11 | 23 | 22 | 22 | 45 | 85 |
A | 2010 | 65 | 56 | 22 | 79 | 12 | 56 |
A | 2011 | 45 | 24 | 32 | 78 | 55 | 15 |
A | 2012 | 45 | 56 | 35 | 78 | 68 | 82 |
B | 2008 | 57 | 77 | 90 | 24 | 90 | 34 |
B | 2009 | 23 | 35 | 34 | 34 | 57 | 97 |
B | 2010 | 77 | 68 | 34 | 91 | 24 | 68 |
B | 2011 | 57 | 36 | 44 | 90 | 67 | 27 |
B | 2012 | 57 | 68 | 47 | 90 | 80 | 94 |
在此例中,左边有两个限定列,紧跟矩阵列之后。限定列的数量可表述为 crosstable 前缀的第三个参数,如下所述:
crosstable (Month, Sales, 2) LOAD * from ex2.xlsx;
这可以在 QlikView 中创建下列结果: