如何在满足tibco spotfire条件的特定列中找到一组行的最大值
how to find maximum of a group of rows in a certain column which satisfies a condition in tibco spotfire
我想在 TIBCO Spotfire 中找到满足条件的特定列中的一组行的最大值。例如,考虑下面的 table:
col 1|col 2|col 3
1 | 2 | y
1 | 3 | y
1 | 6 | y
1 | 8 | n
1 | 7 | n
1 | 6 | y
2 | 2 | y
2 | 10 | y
2 | 6 | y
2 | 9 | n
2 | 7 | y
2 | 6 | n
我想用 [col 1] = 1
对所有行进行分组,并仅考虑那些具有 [col 3] = "y"
.
的行来找到第 2 列的最大值
我的最终 table 必须如下所示:
col 1|col 2|col 3|col 4
1 | 2 | y | 6
1 | 3 | y | 6
1 | 6 | y | 6
1 | 8 | n | 6
1 | 7 | n | 6
1 | 6 | y | 6
2 | 2 | y | 10
2 | 10 | y | 10
2 | 6 | y | 10
2 | 9 | n | 10
2 | 7 | y | 10
2 | 6 | n | 10
有人可以帮我解决这个问题吗?
我想出了一些听起来像你已经尝试过的东西,但这里是。
- 插入计算列:CASE WHEN [col 3]="y" THEN Max([col 2]) OVER ([col 1]) END AS [calc]
- 插入计算列:Max([calc]) OVER ([col 1]) AS [col 4]
这些在 [col 4] 中提供了您正在寻找的值。
First(case when [col 3]="y" then Max([col 2]) OVER ([col 1]) end) OVER ([col 1]) 应该可以解决问题(版本 7.5 ).
谢谢!
@monte_fisto 在类似的情况下我们可以识别 col2
的最小值和最大值吗
我想在 TIBCO Spotfire 中找到满足条件的特定列中的一组行的最大值。例如,考虑下面的 table:
col 1|col 2|col 3 1 | 2 | y 1 | 3 | y 1 | 6 | y 1 | 8 | n 1 | 7 | n 1 | 6 | y 2 | 2 | y 2 | 10 | y 2 | 6 | y 2 | 9 | n 2 | 7 | y 2 | 6 | n
我想用 [col 1] = 1
对所有行进行分组,并仅考虑那些具有 [col 3] = "y"
.
我的最终 table 必须如下所示:
col 1|col 2|col 3|col 4 1 | 2 | y | 6 1 | 3 | y | 6 1 | 6 | y | 6 1 | 8 | n | 6 1 | 7 | n | 6 1 | 6 | y | 6 2 | 2 | y | 10 2 | 10 | y | 10 2 | 6 | y | 10 2 | 9 | n | 10 2 | 7 | y | 10 2 | 6 | n | 10
有人可以帮我解决这个问题吗?
我想出了一些听起来像你已经尝试过的东西,但这里是。
- 插入计算列:CASE WHEN [col 3]="y" THEN Max([col 2]) OVER ([col 1]) END AS [calc]
- 插入计算列:Max([calc]) OVER ([col 1]) AS [col 4]
这些在 [col 4] 中提供了您正在寻找的值。
First(case when [col 3]="y" then Max([col 2]) OVER ([col 1]) end) OVER ([col 1]) 应该可以解决问题(版本 7.5 ).
谢谢!
@monte_fisto 在类似的情况下我们可以识别 col2
的最小值和最大值吗