我需要计算每个月的开放状态的问题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月和11月检查。 如果任何问题在同一个月结束,则意味着该问题尚处于公开阶段,
基本上每个月都要检查他们的记录和上个月的记录。 所需产量低于 - 11月3日 12月4日 扬4 二月-3 行军-1
答案 0 :(得分:0)
所以...我有办法,但它很难看。我确定这是一个更好的方法,但是我花了一些时间来试着让它在Spotfire中工作,而不是依靠循环遍历行和进行比较的python脚本。
使用交叉表中的嵌套聚合case语句,我使它工作。这是一个痛苦的屁股,因为它很漂亮的手册(必须每个月添加),但它会查找在给定的月份之后有一个截止日期的事情以及一个月或更早的开放日期。
<
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而言,你可以循环访问数据并进行比较并将其保存为数据表。如果我本周末感到野心勃勃,我可能会出于个人的好奇尝试一下。如果是的话,我会在这里发帖。
答案 1 :(得分:0)
我认为造成这种困难的原因是,添加一个显示某个时间点开放的问题数量的列是不合逻辑的,因为数据没有显示时间;这是“每个独特问题一行。”
我不知道你的最终结果应该是什么,但你可能最好不要忽视这张桌子。
现在每行代表一个操作,创建一个计算列,使用以下公式为操作指定数值。
案例[行动] 当“Issue_Open_Date”那么1 当“Issue_Closed_Date”为-1时 END
沿X轴创建一个带[Action Date]的条形图(我不会钻月或周),并在Y轴上创建以下内容:
Sum([Action Numeric])over(AllPrevious([Axis.X]))
你最终会得到这样的东西:
然后,您可以使用此数据执行各种奇特的操作,例如显示包含打开和关闭的情况下的速率的折线图(您甚至可以使用图示的示例将其绘制在组合图表上)。