问题描述
我的数据集由以下字段组成:{customer_id}
、{level}
、{source}
。每个客户每个级别有 1 个源,数据集包含每个客户的 3 个级别。我的目标是最终创建一个桑基图,仅显示每个级别的前 2 个来源(基于使用它的客户数量),并将所有其他来源聚类到默认的“其他”类别。
为此,我基本上想创建一个新的计算字段 {new_source},如果 {rank}
下面的示例数据集(前 3 个字段来自源数据集,接下来的 3 个字段是计算出来的):
cid | 级别 | 来源 | 频率 | 排名 | new_source |
---|---|---|---|---|---|
C1 | 0 | 0:FRO | 5 | 1 | 0:FRO |
C1 | 1 | 1:A | 2 | 1 | 1:A |
C1 | 2 | 2:B | 2 | 1 | 2:B |
C2 | 0 | 0:FRO | 5 | 1 | 0:FRO |
C2 | 1. | 1:A | 2 | 1 | 1:A |
C2 | 2. | 2:C | 1 | 3 | 其他 |
C3 | 0. | 0:FRO | 5. | 1 | 0:FRO |
C3 | 1 | 1:C. | 2. | 1 | 1:C |
C3 | 2. | 2:B. | 2 | 1 | 2:B |
C4 | 0 | 0:FRO | 5. | 1 | 0:FRO |
C4 | 1. | 1:C. | 2. | 1 | 1:C |
C4 | 2 | 2:D. | 1 | 3 | 其他 |
C5 | 0. | 0:FRO | 5 | 1 | 0:FRO |
C5 | 1. | 1:B | 1 | 3 | 其他 |
C5 | 2. | 2:A. | 1 | 3 | 其他 |
我计算{rank}的方法如下:
- 首先我像
distinctCountOver({customer_id},[level,source],PRE_AGG)
一样计算 {freq} - 然后我使用 {freq} 来计算 {rank} 就像
rank([{freq} DESC],[level],POST_AGG_FILTER)
- 然后我像
ifelse({rank}<=2,{source},"other")
一样计算 {new_source}。然而,这是 Quicksight 抛出错误的步骤:Mismatched Aggregation. Custom aggregation can't contain both aggregated and nonaggregated fields,in any combination
我该如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)