【问题标题】:how to count of issue with open status in spotfire如何计算spotfire中打开状态的问题
【发布时间】:2015-06-23 18:07:26
【问题描述】:

我需要计算每个月处于打开状态的问题 ID 的计数。 我有以下 3 列-

Issue_ID
Issue_Open_Date
Issue_Closed_Date

Issue_ID    Issue_Open_Date Issue_Closed_Date   Open_Issue_Count(required output)
IS_10   11/11/2014  1/5/2015    3
IS_11   11/12/2014  12/14/2014  
IS_12   11/13/2014  11/15/2014  
IS_13   11/14/2014  3/5/2015    
IS_1    12/1/2014   12/15/2014  4
IS_2    12/2/2014   2/10/2015   
IS_3    12/3/2014   1/15/2015   
IS_4    1/1/2015    2/10/2015   4
IS_5    1/2/2015    3/11/2015   
IS_6    1/3/2015    1/22/2015   
IS_7    2/1/2015    3/5/2015    3
IS_8    2/2/2015    2/2/2015    
IS_9    2/7/2015    2/28/2015   
IS_14   3/1/2015    4/5/2015    1

根据上表,我需要统计每个月的打开状态。 假设在 12 月我需要数数,而不是在 12 月和 11 月检查。 如果有任何问题在同一个月关闭,则表示该问题尚未处于开放阶段,

基本上每个月它也应该检查他们的记录和上个月的记录。 所需的输出如下 - 11 月 3 日 12月4日 1月4日 2月3日 3 月 1 日

【问题讨论】:

  • 能否请您以清晰易读的方式格式化表格?我无法做到这一点 - 标题是否应该重复 2 次?哪一行是什么?

标签: spotfire


【解决方案1】:

所以...我有办法,但它很难看。我确信有更好的方法,但我花了一段时间试图让它只在 Spotfire 中工作,而不是借助 python 脚本循环遍历行并进行比较。

通过交叉表中的嵌套聚合案例语句,我使它工作。这很麻烦,因为它非常手动(必须每个月添加),但它会查找在给定月份之后的结束日期和当月或更早的开放日期的内容。

<
Sum(Case  
when ([Issue_Closed_Date]>Date(2014,11,30)) AND ([Issue_Open_Date]<Date(2014,12,1)) then 1 else 0 end) as [NOV14_OPEN] NEST 

Sum(Case  
when ([Issue_Closed_Date]>Date(2014,12,31)) AND ([Issue_Open_Date]<Date(2015,1,1)) then 1 else 0 end) as [DEC14_OPEN] NEST 

Sum(Case  
when ([Issue_Closed_Date]>Date(2015,1,31)) AND ([Issue_Open_Date]<Date(2015,2,1)) then 1 else 0 end) as [JAN15_OPEN] NEST 

Sum(Case  
when ([Issue_Closed_Date]>Date(2015,2,28)) AND ([Issue_Open_Date]<Date(2015,3,1)) then 1 else 0 end) as [FEB15_OPEN] NEST 

Sum(Case  
when ([Issue_Closed_Date]>Date(2015,3,31)) AND ([Issue_Open_Date]<Date(2015,4,1)) then 1 else 0 end) as [MAR15_OPEN]>

截图:

就使用 python 执行此操作而言,您可能会遍历数据并进行比较并将其保存为数据表。如果这个周末我感到雄心勃勃,我可能会出于个人好奇心尝试一下。如果有,我会在这里发帖。

【讨论】:

  • 您可以通过将 CASE 语句缩短为 Integer( ([Issue_Closed_Date]&gt;Date(2014,11,30)) AND ([Issue_Open_Date]&lt;Date(2014,12,1)) ) 来使其更易于阅读,因为 Integer([boolean]) 将评估为 1 或 0 :)
【解决方案2】:

我认为让这件事变得困难的原因在于,添加一列显示某个时间点打开的问题数量不是很合乎逻辑,因为数据不显示时间;它是“每个唯一问题一行”。

我不知道你的最终结果应该是什么,但你最好不要旋转表格。

  1. 使用the following settings 取消透视以上数据:

    • 通过:[Issue_ID]
    • 转换:[Issue_Open_Date]、[Issue_Closed_Date]
    • 可选择将类别重命名为“操作”,将值重命名为“操作日期”
  2. 现在每一行代表一个操作,创建一个计算列,使用以下公式为操作分配一个数值。

    案例 [行动] 当“Issue_Open_Date”然后 1 当“Issue_Closed_Date”时 -1 结束

  3. 创建一个条形图,其中 X 轴为 [Action Date](我不会钻取超过月或周),Y 轴为以下内容:

    Sum([Action Numeric]) over (AllPrevious([Axis.X]))

你会得到这样的结果:

然后,您可以使用这些数据做各种花哨的事情,例如显示一个折线图以及案例打开和关闭的速率(您甚至可以将其绘制在带有图示示例的组合图表上)。

【讨论】:

    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 2020-12-20
    • 2016-12-10
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多