我正在尝试在Spotfire中制作条形图,其中y轴通过自定义表达式显示,x轴为一年。
我每年使用一个乘数,然后总结。基本上,我有一个大型数据集,而且我使用的是每年发布的模型,只有这些数据的一定比例实际上很重要。所以我试图制作一个条形图,只有那么重要的"重要的"数据。当我的数据只包含唯一记录时,此表达式有效:
Sum(Case
when (Year([Date*])=2011) and ([Source]="A") then 0.43
when (Year([Date*])=2012) and ([Source]="A") then 0.44
when (Year([Date*])=2013) and ([Source]="A") then 0.45
when (Year([Date*])=2014) and ([Source]="A") then 0.47
when (Year([Date*])=2015) and ([Source]="A") then 0.48
else 0
end)
但是,我的数据确实包含一些重复记录。例如,我的数据看起来像这样:
ID Source Date* TA
1 A 1/2/2013 C
1 A 1/2/2013 D
2 A 3/5/2015 E
3 A 11/15/2012 B
3 A 11/15/2012 C
4 B 2/15/2014 B
如果我使用上面的工作代码,我最终会重复计算记录ID 1和3.注意我也有Source <> A
的数据,但我不想在图表中包含这些数据。< / p>
我尝试过这样的事情,但这完全错了:
Sum(Case
when (Year([Date*])=2011) and ([Source]="A") then UniqueCount([ID]) * 0.43
when (Year([Date*])=2012) and ([Source]="A") then UniqueCount([ID]) * 0.44
when (Year([Date*])=2013) and ([Source]="A") then UniqueCount([ID]) * 0.45
when (Year([Date*])=2014) and ([Source]="A") then UniqueCount([ID]) * 0.47
when (Year([Date*])=2015) and ([Source]="A") then UniqueCount([ID]) * 0.48
else 0
end)
如何按年份和唯一标识符汇总不同的百分比?在then
之后,我是否需要考虑某种过度陈述?我被困住了,不胜感激。
答案 0 :(得分:0)
我相信这应该有效:
UniqueCount([ID]) *
Avg(Case
when (Year([Date*])=2011) and ([Source]="A") then 0.43
when (Year([Date*])=2012) and ([Source]="A") then 0.44
when (Year([Date*])=2013) and ([Source]="A") then 0.45
when (Year([Date*])=2014) and ([Source]="A") then 0.47
when (Year([Date*])=2015) and ([Source]="A") then 0.48
else 0
end)
基本上,您使用唯一计数对基于x轴拆分为年的唯一ID求和。然后,您将此计数乘以您在case语句中指定的数字。需要平均值,因为需要聚合值才能使可视化工作正常。
答案 1 :(得分:0)
尝试以下方法:
(1)添加一个计算列(数据清理值),用于分配案例陈述中的值:
Case
when (Year([Date*])=2011) and ([Source]="A") then 0.43
when (Year([Date*])=2012) and ([Source]="A") then 0.44
when (Year([Date*])=2013) and ([Source]="A") then 0.45
when (Year([Date*])=2014) and ([Source]="A") then 0.47
when (Year([Date*])=2015) and ([Source]="A") then 0.48
else 0
(2)为RowID添加计算列(RowID):
RowID()
(3)添加一个计算列(清除数据),该列标记每个重复值记录集的第一行,并返回该记录的case语句中的值:
If([RowId]=Min([RowId]) over ([ID]),[Data Cleaning Value],null)
(4)创建条形图,在x轴上显示日期,在y轴上创建总和([清理数据])。
当我使用您提供的数据执行此操作时,结果图与我在其他答案中由自定义表达式驱动的图相同。没有额外的数据虽然我无法测试它是否会在更大的数据集上。