我的数据集有一个 {Invoice No} 字段,我想对其成本求和。所有发票编号都是唯一的并且具有一个成本值。但是,由于每个 {Invoice No} 中有多个 {Part No} 字段,Quicksight 会将这一成本乘以每张发票中的零件号数量,因此总和最终是我想要的实际值(value)的倍数。这是表格 View 的样子:
{Invoice No} {Part No} {cost}
12345 001 10.12
12345 002 10.12
12345 003 10.12
我怎样才能只使用每个 {Invoice No} 的第一个 {cost} 值,以免重复?我认为解决方法可能是创建一个新字段来省略任何重复的发票编号,但不知道如何在 Quicksight 中执行此操作。 任何解决方案将不胜感激。
最佳答案
还有另一种计算类型称为 Level Aware Aggregation。语法与表计算非常相似(您使用相同的函数),但您不需要在视觉对象中使用“分组依据”字段。结果不是聚合值 - 它类似于在行级别连接回数据的子查询。在发票 ID 级别删除重复数据的一种方法是采用每个发票的最大 PartNo 并返回这些行的成本而不是其他行。它可能看起来像这样:
ifelse( maxOver(PartNo, [Invoice No] , PRE_AGG) = PartNo, cost, null)
然后将其拖到您的视觉对象中并求和。
maxOver 内部缺少聚合以及在末尾添加 PRE_AGG 将其转变为 Level Aware Aggregation。
可以看看这个blog post有关 LAA 的更多信息:
关于amazon-web-services - (Quicksight)如何仅对唯一字段的值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57170840/