我想用集合分析计算过去2值+当前值+下2值的总和。无论是否进行集分析,的工作方式都与一样。无论是否使用集分析("{<Week=>}"),它都可以正常工作。但是当缩放时,图的值会相应地变化。所以我用了集分析。即使这不适合我的案子。
但是,当我放大图表时,我们并没有得到实际的结果。因为我用了集合分析。
我需要以下几点。假设这是我的数据,
|Week | Value |
|------------------|
|01/2011 | 256 |
|02/2011 | 2056 |
|03/2011 | 112 |
|04/2011 | 95 |
|05/2011 | 1069 |
|07/2011 | 125 |
|08/2011 | 73 |
--------------------我需要绘制04/2011的数据将是(2056+112+95+1069+125) ,就像我们需要计算每个日期的一样
我正在尝试使用以下表达式:
它工作很好:RangeSum(Below(Sum(Value),1,6)) + RangeSum(Above(Sum(Value),1,6)) + Sum(Value)
对于缩放,我使用了如下的集合分析,
RangeSum(Below(Sum({<Date=>}Value),1,6)) + RangeSum(Above(Sum({<Date=>}Value),1,6)) + Sum({<Date=>}Value)这不像预期的那样有效。
发布于 2013-11-11 16:40:23
这应该可以按照您的要求进行:
后端代码:
Inline:
LOAD * INLINE [
WeekKey,Value
01/2011,256
02/2011,2056
03/2011,112
04/2011,95
05/2011,1069
07/2011,125
08/2011,73
];
dateTemp:
LOAD
WeekKey,
Right(WeekKey,4)&Left(WeekKey,2) as SortOrder,
Left(WeekKey,2) as Week,
Right(WeekKey,4) as Year
Resident Inline;
LOAD
RowNo() as Row,
*
Resident dateTemp
Order By SortOrder ASC;
DROP Table dateTemp;您的表达式:
Sum({<Week=,WeekKey=,Row = {'>=$(=max(Row)-2)<=$(=max(Row)+2) '}>} Value)发布于 2013-11-05 08:56:55
我对评论中的公开问题作了以下假设:
因此,根据每周的不同,必须对所有的值进行计算。也许这可以用集合分析来完成,但我想这些比较和查找如果不是不可能的话,也会很困难。
我更喜欢预先计算加载脚本中的值的解决方案:
BaseData:
Load
oWeek,
value,
left(oWeek,2) as nWeek,
right(oWeek,4) as nYear,
MakeWeekDate(right(oWeek,4), left(oWeek,2)) as weekstart
inline
[
oWeek, value
01/2011, 256
02/2011, 2056
03/2011, 112
04/2011, 95
05/2011, 1069
07/2011, 125
08/2011, 73
];首先,计算所有需求周的周数:
TEMP_1:
Load
oWeek, value, nWeek, nYear, weekstart,
WeekStart(weekstart, -1) as weekstart_p1,
WeekStart(weekstart, -2) as weekstart_p2,
WeekStart(weekstart, 1) as weekstart_n1,
WeekStart(weekstart, 2) as weekstart_n2
resident BaseData;
drop Table BaseData;查找每周的值:
TEMP_2:
Load
oWeek, value, nWeek, nYear, weekstart,
weekstart_p1, weekstart_p2, weekstart_n1, weekstart_n2,
lookup('value', 'weekstart', weekstart_p1, 'TEMP_1') as value_p1,
lookup('value', 'weekstart', weekstart_p2, 'TEMP_1') as value_p2,
lookup('value', 'weekstart', weekstart_n1, 'TEMP_1') as value_n1,
lookup('value', 'weekstart', weekstart_n2, 'TEMP_1') as value_n2
resident TEMP_1;
drop Table TEMP_1;田野value_p1 ..。可能包含“null”,因此必须将它们转换为0。
TEMP_3:
Load
oWeek, value, nWeek, nYear, weekstart,
weekstart_p1, weekstart_p2, weekstart_n1, weekstart_n2,
value_p1, value_p2, value_n1, value_n2,
if (isnull(value_p2), 0, value_p2) as val_p2,
if (isnull(value_p1), 0, value_p1) as val_p1,
if (isnull(value_n1), 0, value_n1) as val_n1,
if (isnull(value_n2), 0, value_n2) as val_n2
resident TEMP_2;
drop Table TEMP_2;字段val_p1现在包含有效的数值。
Data:
Load
oWeek, value, nWeek, nYear, weekstart,
weekstart_p1, weekstart_p2, weekstart_n1, weekstart_n2,
val_p1, val_p2, val_n1, val_n2,
val_p2 + val_p1 + value + val_n1 + val_n2 as mySum
resident TEMP_3;
drop Table TEMP_3;我的仪表板上有一个桌子盒:

还有一张图表:

希望这能有所帮助。
https://stackoverflow.com/questions/19629043
复制相似问题