在 spotfire 的数据子集中排名
Rank within subsets of data in spotfire
我正在尝试在 Spotfire 中对我的数据子集进行排名。
假设我有一个数据 table,其中包含以下 6 列:
Individual, City, Zip Code, State, Amount1,and Amount2
。
每个 Zip Code
中有数以千计的唯一 Individuals
,每个 State
中有许多 Zip Codes
。我如何只显示每个 State
中前 5 个 Zip Codes
的数据(由 Amount1
的 SUM()
定义)?
总结操作顺序;我想为每个 Zip Code
总结 Amount1
,然后在每个 State
中按 desc 顺序排列 Zip Codes
(只是用于解释目的的中间步骤)最后,只显示每个 State
.
中的前 5 Zip Codes
我所能想到的就是创建一个计算列,如果满足我的条件,则 return Zip Code
,如果不满足,则 NULL
。我不认为它是最好的,但这是我开始使用的代码:
case WHEN DenseRank(Sum(Sum([Amount1]) over [ZipCode]) over [State],"desc")<6 then [ZipCode] ELSE NULL END
任何帮助都会很棒。谢谢!
感谢评论中的澄清。
DenseRank(Sum([A1]) OVER ([ZipCode]),"desc",[State]) as [Rank]
上述函数将根据 [A1]
列中金额的 SUM()
在其各自的 [State]
中对您的 [ZipCode]
进行排名。 DenseRank()
如果出现平局,将不会跳过排名。这意味着您可以在前 5 名中拥有超过 5 个 [ZipCode]
。Use Rank()
如果您想避免这种情况。
然后,您可以为筛选器面板创建计算列,或仅在图表的 "Limit Data using Custom Expressions" 部分对其进行筛选。
If([Rank] < 6,"Top 5", "Other")
as [Zip Rank in State]
我正在尝试在 Spotfire 中对我的数据子集进行排名。
假设我有一个数据 table,其中包含以下 6 列:
Individual, City, Zip Code, State, Amount1,and Amount2
。
每个 Zip Code
中有数以千计的唯一 Individuals
,每个 State
中有许多 Zip Codes
。我如何只显示每个 State
中前 5 个 Zip Codes
的数据(由 Amount1
的 SUM()
定义)?
总结操作顺序;我想为每个 Zip Code
总结 Amount1
,然后在每个 State
中按 desc 顺序排列 Zip Codes
(只是用于解释目的的中间步骤)最后,只显示每个 State
.
Zip Codes
我所能想到的就是创建一个计算列,如果满足我的条件,则 return Zip Code
,如果不满足,则 NULL
。我不认为它是最好的,但这是我开始使用的代码:
case WHEN DenseRank(Sum(Sum([Amount1]) over [ZipCode]) over [State],"desc")<6 then [ZipCode] ELSE NULL END
任何帮助都会很棒。谢谢!
感谢评论中的澄清。
DenseRank(Sum([A1]) OVER ([ZipCode]),"desc",[State]) as [Rank]
上述函数将根据 [A1]
列中金额的 SUM()
在其各自的 [State]
中对您的 [ZipCode]
进行排名。 DenseRank()
如果出现平局,将不会跳过排名。这意味着您可以在前 5 名中拥有超过 5 个 [ZipCode]
。Use Rank()
如果您想避免这种情况。
然后,您可以为筛选器面板创建计算列,或仅在图表的 "Limit Data using Custom Expressions" 部分对其进行筛选。
If([Rank] < 6,"Top 5", "Other")
as [Zip Rank in State]