IF语句中的Tibco Spotfire OVER函数无法按预期工作

问题描述 投票:0回答:1

努力理解包装在IF语句中的OVER函数如何运行。下面提供了示例数据集和公式:

“ Count Over Test 3”列是一个简单的OVER语句,如下所示:

Count() OVER ([Product])

enter image description here

据我所知,在“水果”产品行上,它给出的值是8,因为在数据中有8个行的结果是水果,对于蔬菜,则有4条记录,等等。

“ Count Over Test 2”列有一个计算:

Count() OVER ([Region],[Product])

enter image description here

据我所知,它计算与区域和产品组合匹配的记录。因此,对于北部的Fruit,有4条记录-对于北部的Veg,数据集中有2条记录。

“ Count Over Test”列的公式为:

If([Region]="North",Count() OVER ([Product]),Null)

我希望本专栏要做的是:

  • 由于IF语句,仅在NORTH区域的行上产生一个值
  • 给我与“ Count over Test 3”相同的值,因为它使用相同的“ Count()Over([Product])逻辑]

相反,我得到:

enter image description here

我以为OVER函数将对PRODUCT进行操作,并再次给我8个Fruit ...... IF语句的唯一影响是公式仅针对北行计算? IF语句如何控制OVER子句的分区?

spotfire tibco
1个回答
0
投票

我可以同意,在这种情况下,IF语句的功能有点奇怪。

我要做的是使用两个计算列。

Count() OVER ([Product]) as [HelperColumn]

If([Region]="North",[HelperColumn],Null)

enter image description here

在示例图片中,我没有为列赋予别名来显示表达式。

© www.soinside.com 2019 - 2024. All rights reserved.