基于值聚合时的附加行
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(开始日期), 状态, 开始日期)
这是我的数据模型的样子:
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(开始日期), 状态, 开始日期)