if-statement - 在 Tableau 中执行多个 groupby 转换和聚合函数
问题描述
我有一个看起来与下面的数据非常相似的数据集。
我想使用组列中的值创建两个组。
group1 - 新 &
group2 - 旧的
在 group1 - new 中,我想然后 groupby id 并取每个分组 id 的平均值,然后求和
数据:
id type backup free total Last refreshed
a old 1 4 5 11/1/2020
b old 1 4 5 11/1/2020
c old 1 4 5 11/1/2020
d new 2 1 3 11/1/2020
e new 2 1 3 11/1/2020
f old 1 1 2 11/1/2020
g old 1 1 2 11/1/2020
e new 2 2 4 11/1/2020
d new 2 2 4 11/1/2020
第一步 - 创建 group1 和 group2
id group type used free total Last refreshed
a group2 old 1 4 5 11/1/2020
b group2 old 1 4 5 11/1/2020
c group2 old 1 4 5 11/1/2020
f group2 old 1 1 2 11/1/2020
g group2 old 1 1 2 11/1/2020
d group1 new 2 1 3 11/1/2020
e group1 new 2 1 3 11/1/2020
e group1 new 2 2 4 11/1/2020
d group1 new 2 2 4 11/1/2020
第二步 groupby id
id group type used free total Last refreshed
d new group1 2 1 3 11/1/2020
d new group1 2 2 4 11/1/2020
e new group1 2 1 3 11/1/2020
e new group1 2 2 4 11/1/2020
a old group2 1 4 5 11/1/2020
b old group2 1 4 5 11/1/2020
c old group2 1 4 5 11/1/2020
f old group2 1 1 2 11/1/2020
g old group2 1 1 2 11/1/2020
第三步,我们按 id 分组并取 d 的平均值(对于每一列)我们按 id 分组并取 e 的平均值(对于每一列),然后我们将旧组中的值(对于每一列)相加,然后我们将它们相加
id used free total Last refreshed
d 2 1.5 3.5 11/1/2020
e 2 1.5 3.5 11/1/2020
old 5 14 19 11/1/2020
期望的结果
全部加起来得到:
used free total Last refreshed
9 17 26 11/1/2020
图形:
这就是我正在做的事情:
2.将类型放入组 2.创建计算字段
zn(avg(if [Group]= 'Group1' end))
+
zn(sum(if [Group] = 'Group2' end))
任何建议表示赞赏
解决方案
对于第一部分,即 groupby 转换和聚合,请使用以下计算创建三个计算字段
desired free
{SUM({Fixed [Last Refreshed]: SUM(IF [Type] = "new" THEN
{FIXED [Last Refreshed], [Type], [Id] : AVG([Free])}
ELSEIF [Type] = "old"
THEN {FIXED [Last Refreshed], [Type], [Id] : SUM([Free])}
END)})}
同样对于desired used
和desired total
。您将根据需要获得一个汇总表(请参见屏幕截图)
要创建条形图(堆叠),您必须通过使用和释放到一维的棒状数据来旋转(转换)数据。如果您愿意,我可以再次为您提供解决方案。
推荐阅读
- mysql - 如何在不使用 sqoop 的情况下将行从 mysql 复制到 hive
- python - 如何处理 Airflow 中的“Default_args”错误?
- jquery - 如何在使用 Angular 6 模糊之前调用按钮单击事件
- blockchain - 流启动期间的 net.corda.serialization.internal.amqp.IllegalCustomSerializerException
- python - Python Sockets 将大于 127 的整数值作为单个字节发送
- django - DJango Driver 13 for SQL Server][SQL Server]无效的对象名称'django_session'
- c# - 在 StackPanel 中对齐元素
- android - 如何在谷歌地图中一一删除标记?
- azure - 当定义的函数“routePrefix”不同于“api”时,Azure 函数活动在数据工厂中失败
- excel - 如何在 VBA 中对范围进行排序?