繁体   English   中英

根据Spotfire中另一列的特定值计算列

[英]Calculate column from a specific value from another column in Spotfire

我在计算当前星期的“一周的年龄”时遇到了麻烦。 我不想使用Week()表达式,因为我的数据使用了除Spotfire之外的其他周数(不能更改区域和位置)。 每天我的数据表都会刷新,因此我的计算列[Age_of_Day]计算了从当前(实际)日期开始的几天的时间。 现在,我要计算实际周的周龄。 我在这里有数据样本:

RowID  Week  Day  Date       Age_of_Day
12     20    do   17-5-2018   8
13     20    vr   18-5-2018   7
14     20    za   19-5-2018   6
15     21    zo   20-5-2018   5
16     21    ma   21-5-2018   4
17     21    di   22-5-2018   3
18     21    wo   23-5-2018   2
19     21    do   24-5-2018   1
20     21    vr   25-5-2018   0
21     21    za   26-5-2018  -1
22     22    zo   27-5-2018  -2
23     22    ma   28-5-2018  -3
24     22    di   29-5-2018  -4
25     22    wo   30-5-2018  -5
26     22    do   31-5-2018  -6
27     22    vr   1-6-2018   -7

现在,我想要一个新列[Age_of_Week],当[Age_of_Day] = 0时,该列计算[Week]的值与[Week]的值之间的每一行的差。 应该是这样的:

RowID  Week  Day  Date       Age_of_Day Age_of_Week
12     20    do   17-5-2018   8          1
13     20    vr   18-5-2018   7          1
14     20    za   19-5-2018   6          1
15     21    zo   20-5-2018   5          0
16     21    ma   21-5-2018   4          0
17     21    di   22-5-2018   3          0
18     21    wo   23-5-2018   2          0
19     21    do   24-5-2018   1          0
20     21    vr   25-5-2018   0          0
21     21    za   26-5-2018  -1          0
22     22    zo   27-5-2018  -2         -1
23     22    ma   28-5-2018  -3         -1
24     22    di   29-5-2018  -4         -1
25     22    wo   30-5-2018  -5         -1
26     22    do   31-5-2018  -6         -1
27     22    vr   1-6-2018   -7         -1

希望有人可以帮助我。 我想我必须使用OVER()语句和Intersect(),但在这种情况下我不知道如何。 不幸的是,在其他主题的帮助下我找不到答案。

从版本7开始,您可以使用嵌套聚合,因此此表达式应该有效。

First(case  when [Age_of_Day]=0 then [Week] end) - [Week]

我找到了答案,而且非常简单。 [Age_of_Week]的表达式现在为:

If([Age of Day]>=0,Max([Week]) - [Week],If([Age of Day]<0,Min([Week]) - [Week],NULL))

仅当周数保持连续(如我的情况)且未从52重置为1时,此方法才能正常工作。否则,需要在表达式中添加Year()。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM