Spotfire中计算各分类日均数量:解决部分分类无每日数据问题
Spotfire 动态计算过滤日期范围内管理组日均物品数
问题根源
你当前使用的表达式count([item]) / uniqueCount([date])中,uniqueCount([date])仅统计当前管理组有数据的日期数量,而非整个过滤日期范围的总天数。这就导致像管理组K这类仅在部分日期有数据的分组,计算结果不符合预期。
解决方案
方法1:基于全局唯一日期数计算
使用OVER()函数忽略当前管理组的分组限制,获取整个过滤范围内的总天数:
count([item]) / uniqueCount([date]) OVER ()
count([item]):当前管理组在过滤日期内的总物品数量uniqueCount([date]) OVER ():计算整个过滤数据集内的唯一日期总数(即过滤范围的实际天数)
方法2:基于日期区间计算天数(更严谨)
如果过滤范围内存在某天无任何管理组数据的情况,用日期的最小/最大值计算总天数更准确:
count([item]) / (DateDiff("day", Min([date]) OVER (), Max([date]) OVER ()) + 1)
DateDiff("day", Min([date]) OVER (), Max([date]) OVER ()) + 1:通过过滤范围内的最早和最晚日期,计算包含首尾的总天数
验证效果
- 过滤日期为9/25/2023 - 9/27/2023(3天):管理组K的结果为
1/3≈0.33 - 过滤日期为9/24/2023 - 9/27/2023(4天):结果为
1/4=0.25 - 过滤日期为9/26/2023 - 9/27/2023(2天):结果为
1/2=0.5
内容的提问来源于stack exchange,提问作者cambry
相关产品推荐
相关产品推荐

