Birt report - 计算符合条件的次数

Birt report - count the number of times it matches a criteria

╔═══╦════════════╦═════════════╗
║id ║ TV#        ║ Time        ║
╠═══╬════════════╬═════════════╣
║ 1 ║ TV1        ║ 0           ║
║ 2 ║ TV2        ║ 10          ║
║ 3 ║ TV3        ║ 0           ║
║ 4 ║ TV3        ║ 20          ║
║ 5 ║ TV3        ║ 21          ║
║...║ ...        ║ ...         ║
╚═══╩════════════╩═════════════╝

我想为每个 TV# 计算元素 id 的数量,时间 > 0。 在这种情况下,我希望结果为:

TV1 - 0 ;电视2-1; TV3 - 2

我正在使用 BIRT 报告,我尝试了不同的方法来获取它,但我无法得到我想要的。

我尝试了不同的方法,这是我目前使用的方法:

数据立方体,汇总字段(度量)

函数:计数

表达式:测量["id"]

过滤器:测量["Time"]>0

然后我使用聚合生成器:

函数:Count or Sum

表达式:测量["id"]

过滤器:测量["Time"]>0

聚合于:GroupTV#

当我使用 count 时,这将返回:仅 0 和 1(当至少有一个 Time>0 时,它会向 TV# 提供“1”),即电视1-0;电视2-1; TV3 - 1

当我使用 sum 时,返回的是:每个 TV# 出现在 table 上的次数(当至少有一个 Time>0 时那个频道),即 TV1 - 无输出;电视2-1; TV3 - 3

有人可以帮助我吗?

w=12=WILL.y.:w=11=w w=10=sh

这两种方法都应该有效,但是在您的示例中,您计算​​的是特定 id 而不是 'TV#' 的出现次数。 当然,由于 ID 是唯一的,因此每个 ID 最多只能出现一次。

你需要:

函数:计数

表达式:从 'id' 更改为 'TV#'

过滤器:测量["Time"] > 0

不要在数据立方体、交叉表或图表上使用过滤器,只需在数据集上进行过滤。