如何根据画面中的组求和
how to sum based on groups in tableau
所以我有 2 table 加入了 Tableau。首先table是3个合同项目:
项目 |合同 |地点 |金额
项目1 |合同1 |得克萨斯 | 100
项目1 |合同2 |得克萨斯 | 200
项目1 |合同3 |得克萨斯 | 300
项目2 |合同1 |纽约 | 1000
项目2 |合同2 |纽约 | 2000
项目2 |合同3 |纽约 | 3000
第二个table是合同详情:
项目 |合同 |详情 |风险
项目1 |合同1 |一个 | 0.5
项目1 |合同1 |乙 | 0.9
项目1 |合同1 | c | 0.99
项目2 |合同3 |一个 | 0.2
项目2 |合同3 |乙 | 0.45
项目2 |合同3 | c | 0.33
我正在制作仪表板,因此必须加入这些 table,问题是一旦加入,结果 table 在第一个 table 的金额字段中有重复项。所以如果我想按位置计算总和(数量),它会计算:
德克萨斯州 100 + 100 + 100 + 200 + 300,当我想要 100+200+300 时。既然我加入了 table,我如何才能从第一个 table 获得德克萨斯州的总和?
泛泛而谈..不知道您可能遇到的 tableu 具体问题..
如果详细信息/风险信息与您正在做的工作无关,那么 select 加入前的不同值。
SELECT
*
FROM
(Distinct Project,Contract) Table2 AS a
INNER JOIN Table1 as b
ON a.Project = b.Project
AND a.Contract = B.Contract
如果其他数据与您相关,那么您需要弄清楚如何对其进行去规范化。在这种情况下,您将如何在匹配的行中分配风险以在每个区域创建一行。 .. 说这不是风险,说这是你想加起来的费用分解,你可以这样做
SELECT
b.*
,sum(a.cost)
FROM
Table2 AS a
INNER JOIN Table1 as b
ON a.Project = b.Project
AND a.Contract = B.Contract
GROUP BY
a.Project
a.Contract
不确定这是否有帮助?
嗯..如果不知道你在做什么,这会很棘手..但我有两个建议:
- 通过将这两个字段添加到一起来创建一个项目-合同列,然后加入该列。
例如,当我在 excel 中使用 powerpivot 并且我正在处理销售订单时,我经常需要创建像 :=A1&"-"&B1
这样的列来给我一个“1234-10”类型的结果。
- 规范化(使用数据库中的视图)将您的项目单独放入 table(可能包含总成本),以便所有其他 table 仅 [=36= 】 在那之上。 - 我必须试一试,看看结果如何。
..我只是把这些想法放在那里,因为它们可能会有所帮助,但很抱歉,如果它们只是令人困惑。
所以我有 2 table 加入了 Tableau。首先table是3个合同项目:
项目 |合同 |地点 |金额
项目1 |合同1 |得克萨斯 | 100
项目1 |合同2 |得克萨斯 | 200
项目1 |合同3 |得克萨斯 | 300
项目2 |合同1 |纽约 | 1000
项目2 |合同2 |纽约 | 2000
项目2 |合同3 |纽约 | 3000
第二个table是合同详情:
项目 |合同 |详情 |风险
项目1 |合同1 |一个 | 0.5
项目1 |合同1 |乙 | 0.9
项目1 |合同1 | c | 0.99
项目2 |合同3 |一个 | 0.2
项目2 |合同3 |乙 | 0.45
项目2 |合同3 | c | 0.33
我正在制作仪表板,因此必须加入这些 table,问题是一旦加入,结果 table 在第一个 table 的金额字段中有重复项。所以如果我想按位置计算总和(数量),它会计算:
德克萨斯州 100 + 100 + 100 + 200 + 300,当我想要 100+200+300 时。既然我加入了 table,我如何才能从第一个 table 获得德克萨斯州的总和?
泛泛而谈..不知道您可能遇到的 tableu 具体问题..
如果详细信息/风险信息与您正在做的工作无关,那么 select 加入前的不同值。
SELECT
*
FROM
(Distinct Project,Contract) Table2 AS a
INNER JOIN Table1 as b
ON a.Project = b.Project
AND a.Contract = B.Contract
如果其他数据与您相关,那么您需要弄清楚如何对其进行去规范化。在这种情况下,您将如何在匹配的行中分配风险以在每个区域创建一行。 .. 说这不是风险,说这是你想加起来的费用分解,你可以这样做
SELECT
b.*
,sum(a.cost)
FROM
Table2 AS a
INNER JOIN Table1 as b
ON a.Project = b.Project
AND a.Contract = B.Contract
GROUP BY
a.Project
a.Contract
不确定这是否有帮助?
嗯..如果不知道你在做什么,这会很棘手..但我有两个建议:
- 通过将这两个字段添加到一起来创建一个项目-合同列,然后加入该列。
例如,当我在 excel 中使用 powerpivot 并且我正在处理销售订单时,我经常需要创建像 :=A1&"-"&B1
这样的列来给我一个“1234-10”类型的结果。
- 规范化(使用数据库中的视图)将您的项目单独放入 table(可能包含总成本),以便所有其他 table 仅 [=36= 】 在那之上。 - 我必须试一试,看看结果如何。
..我只是把这些想法放在那里,因为它们可能会有所帮助,但很抱歉,如果它们只是令人困惑。