基于值聚合时的附加行

Additional row while aggregating based on value

这是我的数据模型的样子:

Id          Status             StartDate
1           StatusA            01/01/2015
1           StatusB            01/03/2015
1           StatusC            01/05/2015
2           StatusA            01/04/2015
2           StatusB            01/08/2015

我正在尝试获取每个 ID 的 StatusB 列的最大日期。

我的尺寸是这样的:

=If(Match(Status,'StatusB'),Timestamp(StartDate))

它工作正常,但它也给了我一个额外的重复行,最大日期为空。

我的直图 table 只包含这两列。如果我删除最大日期维度,它会为每个 Id

显示一条记录

我在这里错过了什么?

无需在维度中添加过滤器。 QV 允许计算维度,但它们会导致很多性能问题。 (基本上当使用计算维度时,QV 会在内存中使用新维度创建新的 "virtual" table。对于大数据集,这会耗尽你的 ram/cpu)

对于这种情况,通过表达式 "control" 维度要好得多。在您的情况下,只需将状态添加为维度并键入以下表达式:

max( {< Status = {'StatusB'} >} StartDate)

然后在“数字”选项卡中将格式设置更改为“时间戳”。

斯蒂芬

你可以这样;

aggr(max(开始日期), 状态, 开始日期)