我有以下数据集(只是它在更大范围内):
LOAD * INLINE [
Region, Value, Quarter
A, 1, Q1 18
B, 2, Q1 18
C, 3, Q1 18
D, 4, Q1 18
A, 1, Q1 17
B, 2, Q1 17
C, 3, Q1 17
D, 4, Q1 17
A, 1, Q2 17
B, 2, Q2 17
C, 3, Q2 17
D, 4, Q2 17
A, 1, Q3 17
B, 2, Q3 17
C, 3, Q3 17
D, 4, Q3 17
A, 1, Q4 17
B, 2, Q4 17
C, 3, Q4 17
D, 4, Q4 17
A, 1, Q4 16
B, 2, Q4 16
C, 3, Q4 16
D, 4, Q4 16
];
我需要在数据透视表中显示数据,使用Quarter作为列,Region作为行,sum(Value)作为度量 如果我将像这样创建数据透视表,它将呈现所有6个季度。如果我想限制四分之一的季度怎么办? 它需要是一个动态解决方案,因为我将数据添加到负载,并始终需要显示最后4个季度
可以通过set表达式来完成吗?或者我需要在加载脚本中使用逻辑? 老实说,我宁愿选择涉及集合表达的解决方案
有人想出办法来实现这个目标吗?
答案 0 :(得分:1)
使用Quarter字段进行单集分析处理它会很复杂。
一种方法:
Data:
LOAD * INLINE [
Region, Value, Quarter
A, 1, Q1 18
B, 2, Q1 18
C, 3, Q1 18
D, 4, Q1 18
A, 1, Q1 17
B, 2, Q1 17
C, 3, Q1 17
D, 4, Q1 17
A, 1, Q2 17
B, 2, Q2 17
C, 3, Q2 17
D, 4, Q2 17
A, 1, Q3 17
B, 2, Q3 17
C, 3, Q3 17
D, 4, Q3 17
A, 1, Q4 17
B, 2, Q4 17
C, 3, Q4 17
D, 4, Q4 17
A, 1, Q4 16
B, 2, Q4 16
C, 3, Q4 16
D, 4, Q4 16
];
Tmp:
LOAD Distinct
Quarter,
Right(Quarter, 2) as Year,
Left(Quarter, 2) as Q
Resident Data
;
Calendar:
LOAD *,
RowNo() as SeqNumber
Resident Tmp
ORDER BY Year DESC, Q DESC;
DROP Table Tmp;
然后使用以下表达式:Sum({<SeqNumber={"<=4"}>} Value)