[英]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.