作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的数据集有一个 {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/
我是一名优秀的程序员,十分优秀!