(Quicksight) 如何仅对唯一字段中的值求和

Big*_*gus 3 duplicates amazon-web-services calculated-field amazon-quicksight

我的数据集有一个 {Invoice No} 字段,我想对其成本进行求和。所有发票号码都是唯一的并且具有一个成本值。但是,由于每个 {Invoice No} 中有多个 {Part No} 字段,Quicksight 会将这一成本乘以每张发票中的零件编号数量,因此总和最终是我想要的实际值的某个倍数。这是表视图的样子:

{Invoice No}    {Part No}     {cost}
12345            001           10.12
12345            002           10.12
12345            003           10.12
Run Code Online (Sandbox Code Playgroud)

我怎样才能只使用每个{Invoice No}的第一个{cost}值,这样它就不会重复?我认为解决方法可能是创建一个新字段,忽略任何重复的发票编号,但不知道如何在 Quicksight 中执行此操作。任何解决方案将不胜感激。

小智 5

还有另一种计算类型,称为级别感知聚合。语法与表计算非常相似(您使用相同的函数),但您不需要在视觉对象中使用“分组依据”字段。结果不是聚合值 - 它类似于在行级别连接回数据的子查询。在发票 ID 级别删除重复数据的一种方法是获取每个发票的最大 PartNo,并返回这些行的成本,而不是其他行的成本。它可能看起来像这样:

ifelse( maxOver(PartNo, [Invoice No] , PRE_AGG) = PartNo, cost, null)
Run Code Online (Sandbox Code Playgroud)

然后将其拖到您的视觉效果中并对其进行求和。

maxOver 内部缺乏聚合,加上末尾添加 PRE_AGG,使其成为级别感知聚合。

可以查看这篇博客文章,了解有关 LAA 的更多信息: